在Windows及Linux下获取毫秒级运行时间的方法
2016-05-11 22:19
549 查看
在Windows下获取毫秒级运行时间的方法
头文件:<Windows.h>函数原型:
/*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL WINAPI QueryPerformanceFrequency( _Out_ LARGE_INTEGER * lpFrequency ); /*获取从某个时间点开始的时钟周期数,保存在结构LARGE_INTEGER中**/ WINBASEAPI BOOL WINAPI QueryPerformanceFrequency( _Out_ LARGE_INTEGER * lpFrequency );
LARGE_INTEGER结构
typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; } DUMMYSTRUCTNAME; struct { DWORD LowPart; LONG HighPart; } u; #endif //MIDL_PASS LONGLONG QuadPart; } LARGE_INTEGER;
LARGE_INTEGER为一个union,我们将使用成员QuadPart获取时钟周期数。
方法:
1) 调用QueryPerformanceFrequency()获取时钟频率
2) 在待测部分的首尾分别调用QueryPerformanceCounter()获取两个时间点的时钟周期数
3) 将两个节点的时钟周期数差值除以时钟频率即可得到测试部分的运行时间
参考代码:
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> int main() { struct timeval _tstart, _tend; double t1, t2; gettimeofday(&_tstart, NULL); // ToDo.. gettimeofday(&_tend, NULL); t1 = (double)_tstart.tv_sec * 1000 + (double)_tstart.tv_usec / 1000; t2 = (double)_tend.tv_sec * 1000 + (double)_tend.tv_usec / 1000; printf("Cost time : %fms\n", t2 - t1); return 0; }
View Code
参考资料:http://www.ibm.com/developerworks/cn/linux/sdk/rt/part1/index.html
相关文章推荐
- linux 清除内存和Cache方法
- MAC(Linux)升级Openssl
- linux基本命令(23)——linux目录结构
- Linux基础篇四———管道命令
- linux服务器端的svn搭建及版本库同步
- linux基本命令(22)——find命令参数详解
- Linux进程
- Linux 异步IO
- linux环境变量配置总结
- linux环境变量配置总结
- 系统学习Linux系统第一天:5-11
- Linux命令——文件和目录管理
- CentOS/RedHat和Debian/Ubuntu安装VMware Tools时无法找到kernel header path的解决方案
- Linux 3.2中回写机制的变革
- Linux 3.2中回写机制的变革
- Linux命令技巧
- Linux基础(一)
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux串口编程(中断方式和select方式)