性能测试的时间间隔获取方法

本文介绍了在性能测试中获取时间间隔的几种方法,包括C语言的clock()函数、利用CPU的rdtsc寄存器以及Windows平台的QueryPerformanceCounter。在不同平台和编译环境下,这些方法的精度和使用注意事项各有不同。例如,clock()在Linux上返回CPU时间,而在Windows上包括Sleep()的时间;rdtsc寄存器提供了高精度但需注意64位和32位的写法差异;Windows的QueryPerformanceCounter是推荐的高精度计时API。
摘要由CSDN通过智能技术生成

性能测试的时候,一个问题就是时间间隔,有很多时间函数能获取时间,从而求取时间间隔。关于这方面的文章很多,我就不重复了,这里只是提供一些基本的信息,从而方便我自己做性能测试使用:

(1)C语言时间函数clock()和clock_t:

time.h中的C语言时间函数clock()能获取当前时间。需要注意的是,这个函数在Windows和Linux下是通用的,但是其返回值的单位是不同的,一个是毫秒,一个是微秒。

从单位也可以看出该方式获取时间的精度。总体来说,其精度在毫秒级,所以测试性能的时候,对于粗时间间隔的测试,用这个函数就足够了。

需要注意的是:在Linux上,clock()获取的是CPU时间,不是wall-clock时间,所以如果使用了sleep()等函数,那么是不会计算在内的。但是在Windows平台上,clock()获取的时间包括Sleep()等函数的时间,所以使用clock()的时候要注意这一点,在Linux上得到的很可能不是一个正确的Elapsed time

(2)利用CPU获取高精度时间rdtsc寄存器

rdtsc是一个64位的寄存器&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值