1
116
它可以在windows和linux上工作;它是线程安全的。
|
2
43
我有另一个使用微秒的工作示例(UNIX、POSIX等)。
https://github.com/arhuaco/junkcode/blob/master/emqbit-bench/bench.c |
3
42
这里有一个C++11中的简单解决方案,它提供了令人满意的分辨率。
或者在*nix上,对于c++03
|
4
18
什么时候
:这里有一个不使用Boost的版本(在macOS/iOS上测试):
|
5
5
Windows提供QueryPerformanceCounter()函数,Unix提供gettimeofday(),这两个函数都可以测量至少1微秒的差异。 |
6
3
|
7
2
我建议使用标准库函数从系统中获取时间信息。
|
8
2
运行内循环几次,性能计时只运行一次,通过划分内循环重复次数来平均,比运行整件事情(循环+性能计时)几次并平均要好。这将减少性能计时代码与实际分析部分的开销。 将计时器调用包装到适当的系统。对于Windows,QueryPerformanceCounter非常快速且使用“安全”。 您也可以在任何现代X86 PC上使用“rdtsc”,但在某些多核计算机上可能会出现问题(内核跳变可能会改变计时器),或者如果您启用了某种速度步长。 |
9
2
当前(大约2017年)在windows下获得准确计时的方法是使用“QueryPerformanceCounter”。这种方法的优点是可以给出非常准确的结果,这是MS.推荐的方法。只需将代码块放到一个新的控制台应用程序中,就可以得到一个工作样本。这里有一个冗长的讨论: Acquiring High resolution time stamps
|
10
2
免费操作系统的一个很好的替代方法就是将当前线程的亲和性设置为1个核心,并将优先级设置为最高。该替代方案应提供足够一致的结果。
假设您使用
此外,所有速度测试(在某种程度上)都是伪证:在最终生产产品中使用
同时,如果您正在对大量使用
可以减少不一致性的部分解决方案是使用
下面是一个如何在Windows计算机上对平方根函数进行基准测试的示例。
此外,迈克·贾维斯的计时器也值得称赞。
|
11
1
对于每次执行同一段代码时都要对其计时的情况(例如,对于您认为可能是瓶颈的分析代码),我发现Andreas Bonini函数的包装器(对其稍作修改)非常有用:
|
12
1
只是一个对代码块进行基准测试的简单类:
|
13
0
boost::timer
|
14
0
|
15
0
我使用chrono库的高分辨率时钟创建了一个用于测量代码块性能的简单实用程序: https://github.com/nfergu/codetimer .
用法如下:
|
16
0
|
17
0
我就是这样做的,代码不多,容易理解,适合我的需要:
用法:
|
18
0
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |