c++ 获取操作的精确时间
2012-10-13 18:52
399 查看
有很多时候为了测试效率问题,我们需要对时间的精确掌控,mfc给我们封装的时间函数就满足不了我们的需求了。
这时候需要使用下面两个函数
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);
第一个函数:返回硬件支持的高精度计数器的频率。
第二个函数:得到高精度计时器的值
其使用过程也是相当的简单:
直接看源代码:
可以看到,我们平时认为的sleep()函数并不是精确的,
其实sleep()函数受到cpu的影响,但是他的大约值是100ms,所以我们用的时候还是可以放心的
这时候需要使用下面两个函数
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);
第一个函数:返回硬件支持的高精度计数器的频率。
第二个函数:得到高精度计时器的值
其使用过程也是相当的简单:
直接看源代码:
#include <iostream> #include <windows.h> using namespace std; int main() { LARGE_INTEGER Frequency;//计数器频率 LARGE_INTEGER start_PerformanceCount;//起始计数器 LARGE_INTEGER end_PerformanceCount;//结束计数器 double run_time; //运行时间 QueryPerformanceFrequency(&Frequency); for (int i = 0 ; i < 10 ; ++i ) { QueryPerformanceCounter(&start_PerformanceCount); //运行测试的代码 Sleep(10); QueryPerformanceCounter(&end_PerformanceCount); run_time = ( end_PerformanceCount.QuadPart - start_PerformanceCount.QuadPart ) / (double)Frequency.QuadPart; cout<<run_time<<endl; } return 0; }
可以看到,我们平时认为的sleep()函数并不是精确的,
其实sleep()函数受到cpu的影响,但是他的大约值是100ms,所以我们用的时候还是可以放心的
相关文章推荐
- C++中获取UTC时间精确到微秒的实现代码
- C++ 时间操作(获取毫秒级)
- c++获取系统时间精确到秒
- C++精确获取时间(QueryPerformanceCounter)
- C++ 时间操作(获取毫秒级)
- C++ 获取UTC时间精确到微妙
- C++ 获取程序运行时间/时间戳 精确到毫秒
- linux C++ 获取当前时间,以标准时间“年-月-日 时:分:秒”的形式输出,且秒后边跟小数精确到毫秒
- C++获取系统当前时间(精确到微秒)
- C/C++获取精确到微秒级的系统时间
- C/C++获取系统时间戳,精确到毫秒
- c/c++ 获取时间, 精确到毫秒
- C++ 时间操作(获取毫秒级)【转】
- c++获取系统时间,精确到ms级
- C++ 如何获取目录下面的文件/文件的创建时间
- C++记录精确时间-QueryPerformanceFrequency()
- PHP 时间操作(获取一周前、明天的日期)
- c++获取windows时间的方法(转)
- C++记录精确时间-QueryPerformanceFrequency()
- Js获取当前日期时间及其它操作