【发布时间】:2016-06-06 04:09:28
【问题描述】:
这里有一个非常有趣的注释:http://en.cppreference.com/w/cpp/chrono/c/clock
"只有对 std::clock 的不同调用返回的两个值之间的差异才有意义,因为 std::clock 时代的开始不必与程序的开始重合。std::clock 时间可能快于或慢于挂钟,取决于操作系统给予程序的执行资源。例如,如果 CPU 被其他进程共享,则 std::clock 时间可能会比挂钟提前。 另一方面,如果当前进程是多线程的,并且有多个执行内核可用,std::clock 时间可能会比挂钟快。"
为什么使用多线程可以加快时钟速度?我正在检查一个 C++ 程序的性能与没有它的线程,我注意到线程的时间相似(不是更好)但 感觉 更快(比如说 8 秒在 3 秒运行时)。
【问题讨论】:
-
请注意,文档中说的是“可以提前”,而不是“将提前”。
-
感谢您的澄清。不过,这是一件有趣的事情。
-
众所周知,程序拥有的线程越多,程序就越重。因此,这显然是相对论的影响
标签: c++ multithreading performance clock