通常,程序员发现用测量执行时间的方法来比较一段代码与另一段代码执行的性能是很有用的。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,