Fir*_*axy 5 c++ performance multithreading clock
这里有一个非常有趣的注释:http ://en.cppreference.com/w/cpp/chrono/c/clock
“只有对 std::clock 的不同调用返回的两个值之间的差异才有意义,因为 std::clock 时代的开始不必与程序的开始一致。std::clock 时间可能提前得更快或比挂钟慢,取决于操作系统给予程序的执行资源。例如,如果CPU被其他进程共享,则std::clock时间可能比挂钟慢。另一方面,如果当前进程是多线程的,并且有多个执行核心可用,std::clock 时间可能比挂钟提前。 ”
为什么多线程会加快时钟速度?我正在检查使用线程与不使用线程的 C++ 程序的性能,我注意到线程的时间相似(不是更好),但感觉更快(比如在 3 秒的运行时中运行 8 秒)。
如果有多个核心可用,并且您正在运行多个线程,则可能有多个线程同时在不同的核心上执行。由于clock()测量处理器时间,它可能比挂钟时间更快,因为多个线程同时推进它。
正如文档中给出的示例 - 它显示了创建的两个线程,并且clock()报告的值几乎是报告的挂钟时间的两倍。
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |