c语言 统计程序运行时间,汇编语言GetMseconds:测量程序执行时间

本文介绍了如何利用Microsoft Windows API中的GetMseconds函数来测量C语言程序的执行时间,以此评估代码性能。通过示例代码比较了SHL移位操作和MUL指令在不同处理器上的性能差异,展示了在新处理器中MUL指令的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常,程序员发现用测量执行时间的方法来比较一段代码与另一段代码执行的性能是很有用的。Microsoft Windows API 为此提供了必要的工具,lrvine32 库中的 GetMseconds 过程可使其变得更加方便使用。该过程获取系统自午夜过后经过的毫秒数。

在下面的代码示例中,首先调用 GetMseconds,这样就可以记录系统开始时间。然后调用想要测量其执行时间的过程 (FirstProcedureToTest)。最后,再次调用 GetMseconds,计算开始时间和当前毫秒数的差值:

.data

startTime DWORD ?

procTime1 DWORD ?

procTime2 DWORD ?

.code

call GetMseconds ;获得开始时间

mov startTime, eax

.

call FirstProcedureToTest

.

call GetMseconds ;获得结束时间

sub eax, startTime ;计算执行花费的时间

mov procTime1, eax ;保存执行花费的时间

当然,两次调用 GetMseconds 会消耗一点执行时间。但是在衡量两个代码实现的性能时间之比时,这点开销是微不足道的。现在,调用另一个被测试的过程,并保存其执行时间 (procTime2):

call GetMseconds ;获得开始时间

mov startTime, eax

.

call SecondProcedureToTest

.

call GetMseconds ;获得结束时间

sub eax,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值