使用LARGE_INTEGER查看系统运行时间
2006-03-29 09:50
267 查看
众所周知,windows ce是一个实时操作,因此提供了不少的优先级给用户.优先级最高为0级,也就是说使用0优先级的程序, 可以挂起整个系统, 来运行你的程序
对于实时性比较的领域, 我们作为程序员的 应该清楚的知道你的程序模块运行的时间 是非常必要的. 当然这个模块运行的时间也不是完全的稳定的, 几次运行的时间相差几十毫秒是很正常的. 因此我们只要知道大概的时间就可以了.
当然, 大家非常容易的想到, 先用 GetSystemTime() 获取系统时间1 ,然后处理程序 , 再获取系统时间2 ; 系统时间2 - 系统时间1 , 就是程序的运行时间? 这个方法当然行(在XP 或者 2000下是可以的), 在windows ce下就不行了, 你也可以试一试, 我试的结果, 我知道 这个方法只能精确到秒, 非常的不可靠. 自然而然 我们想到了另一种方法 也是wince下特有的.
LARGE_INTEGER Freg;
LARGE_INTEGER Count1, Count2;
QueryPerformanceFrequency(&Freg); //调用API函数, 这个API函数可是优先级0的函数啊.
QueryPerformanceCounter(&Count1); //获取时间一
//测试程序;
QueryPerformanceCounter(&Count2); //获取时间2
double d = (double)(Count2.QuadPart - Count1.QuadPart) / (double)Freg.QuadPart * 1000.0;
//都放大了1000倍拉! 这样的结果还是毫秒级的!! 够强 够牛吧!
当然我们可以利用函数可以做很多很多事, 包括做更精确的定时器, 等等 ,具体要看大家的使用了.
对于实时性比较的领域, 我们作为程序员的 应该清楚的知道你的程序模块运行的时间 是非常必要的. 当然这个模块运行的时间也不是完全的稳定的, 几次运行的时间相差几十毫秒是很正常的. 因此我们只要知道大概的时间就可以了.
当然, 大家非常容易的想到, 先用 GetSystemTime() 获取系统时间1 ,然后处理程序 , 再获取系统时间2 ; 系统时间2 - 系统时间1 , 就是程序的运行时间? 这个方法当然行(在XP 或者 2000下是可以的), 在windows ce下就不行了, 你也可以试一试, 我试的结果, 我知道 这个方法只能精确到秒, 非常的不可靠. 自然而然 我们想到了另一种方法 也是wince下特有的.
LARGE_INTEGER Freg;
LARGE_INTEGER Count1, Count2;
QueryPerformanceFrequency(&Freg); //调用API函数, 这个API函数可是优先级0的函数啊.
QueryPerformanceCounter(&Count1); //获取时间一
//测试程序;
QueryPerformanceCounter(&Count2); //获取时间2
double d = (double)(Count2.QuadPart - Count1.QuadPart) / (double)Freg.QuadPart * 1000.0;
//都放大了1000倍拉! 这样的结果还是毫秒级的!! 够强 够牛吧!
当然我们可以利用函数可以做很多很多事, 包括做更精确的定时器, 等等 ,具体要看大家的使用了.
相关文章推荐
- 转使用LARGE_INTEGER查看系统运行时间
- 多核优化,使用linux affinity 将进程,线程,中断指定到对应的cpu运行,用ftrace查看消耗时间
- 查看系统运行时间和系统当前时间
- Linux下如何查看系统启动时间和运行时间
- Linux下如何查看系统启动时间和运行时间
- 查看程序运行时间, gprof使用详细介绍
- 如何查看windows的系统运行时间
- Linux下如何查看系统启动时间和运行时间
- 查看CentOS系统运行了多久使用uptime命令
- 嵌入式 linux 查看系统运行时间
- Linux—查看远程Linux系统运行时间
- 查看系统运行时间
- dumpsys工具使用----查看当前系统正在运行的services
- 查看linux系统运行时长及重启时间
- Linux下如何查看系统启动时间和运行时间
- windows XP 下怎样查看系统运行时间总计?
- Linux下如何查看系统启动时间和运行时间
- Linux下如何查看系统启动时间和运行时间
- 查看系统日志电脑系统的开机启动时间和本次开机运行时间
- Linux下如何查看系统启动时间和运行时间