如果我有下面的代码
clock_t t;
t = clock();
//algorithm
t = clock() - t;
t 等于运行程序的滴答数。这与 CPU 时间相同吗?在 C++ 中还有其他方法可以测量 CPU 时间吗?
操作系统 -- Debian GNU/Linux 我对任何有用的东西都持开放态度。我想比较两种算法的 CPU 时间。
最佳答案
clock()
指定用于测量 CPU 时间,但并非所有实现都这样做。特别是 Microsoft 在 VS 中的实现不会在多个线程运行时计算额外时间,或者在程序线程休眠/等待时计算较少时间。
另请注意,clock()
应测量整个程序使用的 CPU 时间,因此将测量 //algorithm
中多个线程使用的 CPU 时间,其他不属于 //algorithm
的线程也被计算在内。
clock()
是标准中指定的唯一测量 CPU 时间的方法,但是肯定还有其他平台特定的方法来测量 CPU 时间。
std::chrono
不包含任何用于测量 CPU 时间的时钟。它只有一个与系统时间同步的时钟,一个相对于实时以稳定速率前进的时钟,以及一个“高分辨率”但不一定测量 CPU 时间的时钟。
关于c++ - 在 C++ 中测量 CPU 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167685/