![]() |
1
107
见
如果您想为自己计算执行时间(而不是为用户计算),最好以时钟周期(而不是秒)为单位进行计算。
编辑:
|
![]() |
2
32
如果您使用C++ 11,这里是一个简单的包装器(见此 gist ):
或者对于C++ 03在*NIX上:
使用示例:
|
![]() |
3
30
我会认真考虑使用boost,特别是boost::posix_time::ptime和boost::posix_time::time_duration(在 http://www.boost.org/doc/libs/1_38_0/doc/html/date_time/posix_time.html ) 它是跨平台的,易于使用,根据我的经验,它提供了操作系统提供的最高级别的时间分辨率。可能也非常重要;它提供了一些非常好的IO操作员。 要使用它来计算程序执行的差异(以微秒计;可能是杀伤力过大),它看起来像这样[浏览器编写,未测试]:
|
![]() |
4
13
Boost 1.46.0及以上版本包括 Chrono 图书馆:
|
![]() |
5
11
在Windows中:使用 GetTickCount
|
![]() |
6
10
我添加了这个答案来澄清 answer 显示可能不是所需时间的CPU时间。因为根据 the reference 有 CPU时间和挂钟时间 . 墙时钟时间是显示实际运行时间的时间,而不考虑任何其他条件,如CPU由其他进程共享。例如,我使用多个处理器来完成某个任务,CPU时间很长 18S 它实际发生的地方 2S 在实际的挂钟时间。 为了得到你的实际时间,
|
![]() |
7
8
您也可以使用 clock_gettime . 此方法可用于测量:
代码如下:
` |
![]() |
8
6
如果您在Unix上,可以使用
|
![]() |
9
5
附带说明:如果您在Windows上运行,并且确实需要精确性,则可以使用 QueryPerformanceCounter . 它给你时间(潜在的) 纳米技术 秒。 |
![]() |
10
4
对我来说,最简单的方法是:
使用这段代码,你不必做经典的
享受你最喜欢的方法。 |
![]() |
11
3
获取系统时间,以毫秒为单位,从开始到结束,再减去。 要获得自1970年以来在posix中的毫秒数,您需要编写:
要在Windows上获取自1601年以来的毫秒数,您需要写入:
如果您希望规范化Windows应答,使它也返回1970年以来的毫秒数,那么您必须将应答调整为11644473600000毫秒。但如果你所关心的只是过去的时间,那就没有必要了。 |
![]() |
12
2
如果使用:
然后,您将需要以下内容以秒为单位获得时间:
|
![]() |
13
0
这对于Intel Mac 10.7来说似乎很好:
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 7 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 7 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 7 月前 |