实现一个Windows下的时间统计程序(类似于Linux下的time)
作者:tyc611.cublog.cn,2008-11-11
在Linux下我们可以很方便地使用time工具来统计目标程序的运行时间,但我却没有发现Windows下有对应的工具可用。于是,自己动手,丰衣足食,写了一个,基本上能够满足自己的需求了。也放在这里,供感兴趣的朋友使用。该程序命名为timing(因为windows下已经有一个time命令了,只好另择其名),下面方便进行指代。
timing的实现原理:
(1)利用命令行参数接收目标程序;
(2)利用子进程来执行目标程序;
(3)等待子进程结束,然后查询子进程的执行时间。
timing的功能:(1)如果目标程序自然运行结束,那么可以顺利得到统计结果;
(2)可以使用Ctrl+C来中断程序执行,会得到此前的运行统计结果;
(3)目标程序的运行时间统计输出采用“[[[*h]*m]*s]*ms”表示,其中*表示具体数字,h表示小时,m表示分,s表示秒,ms表示毫秒(最小精度)。
timing的不足:
(1)如果通过任务管理器杀死了timing进程,那么将无任何统计结果输出;
(2)没有考虑特殊的目标程序可能引起的问题(无奈本人经验有限)。
程序编译、运行演示(程序源码见后面的附件中):
F:\tmp>cl timing.cpp /nologo /DUNICODE /D_UNICODE
timing.cpp
F:\tmp>cl ttt1.cpp /nologo
ttt1.cpp
F:\tmp>timing ttt1.exe
2008-11-11 18:53:18 running...
2008-11-11 18:53:20 ...
finishedKernel Time: 46ms
User Time: 2s31ms
Total Time: 2s78ms
F:\tmp>cl /nologo ttt2.cpp
ttt2.cpp
F:\tmp>timing ttt2.exe
2008-11-11 19:00:32 running...
2008-11-11 19:01:58 ...
killed(Ctrl+C)Kernel Time: 62ms
User Time: 1m21s453ms
Total Time: 1m21s515ms
(注:这里使用了Ctrl+C来中断程序运行)F:\tmp>
源码下载:
|
文件: | timing.zip |
大小: | 93KB |
下载: | 下载 |
|
阅读(2311) | 评论(0) | 转发(0) |