注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 网工人才缺口大 传统网管..
 帮助

程序运行时间


2008-05-08 17:37:11
 标签:运行时间   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://convoy.blog.51cto.com/134374/75933
天突然想到程序的效率问题,于是想知道程序运行的时间(类似做acm时程序的时间)
于是我咨询了daxiong
把我的方法告诉大家,一起探讨

用到了windows的API函数,所以要包含windows.h
调用函数GetProcessTimes()
函数包括四个参数以此为 进程ID,程序启动时间,程序终止时间,内核时间,用户时间
我们这里要获取的就是用户时间
获得当前进程我们用GetCurrentProcess()函数
四个时间参数类型是FILETIME,传递进去的是变量的地址
输出用户时间的dwLowDateTime,就能看到一个时间
如果你觉得这样太抽象,不好理解,那么可以进行一下类型的转换,调用FileTimeToSystemTime(filetime,systemtime)
而后即可输出运行的小时,分……毫秒

FILETIME f1,f2,f3,f4;

SYSTEMTIME s1,s2,s3,s4;

GetProcessTimes(GetCurrentProcess(),&f1,&f2,&f3,&f4);//注意传递进取的是地址,有&

FileTimeToSystemTime(&f4,&s4);//还是地址,转换时间类型

cout<<f4.dwLowDateTime<<endl;//输出的是64位的地位

cout<<s4.wSecond*1000+s4.wMilliseconds<<endl;//这里我把时间转化成毫秒了

两种时间类型的值是一样的,就是表示形式不一样

我用汉诺塔程序测试过,基本好使
本人能力有限,希望大家能理解
也许说的这些比较简单,希望能给部分初学者带来点启发

本文出自 “blog.convoy.com” 博客,请务必保留此出处http://convoy.blog.51cto.com/134374/75933





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: