c++ - 在 C++ 中测量 CPU 时间

标签 c++ time runtime cpu-usage cpu-time

如果我有下面的代码

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/

相关文章:

javascript - 使用got时如何计算花费的时间?

php - 算出一天过去的百分比

找不到这段 C 代码的时间复杂度?

java - 如何确保 Java JDK 和 JRE 匹配以及如果不匹配如何使它们匹配

c++ - OpenCV如何在matlab中共享库?

c++ - 使用 R 和 .C 返回点积

C++ - DirectSoundBuffer 在特定位置停止播放 - 无通知

java - 如何将 Java double[][] 转换为 C++ <vector<vector>> JNI?

c++ - 在编写日历时遇到问题,我无法在任何地方找到详细的指南来回答我的问题

ios - 在运行时获取配置文件的到期日期?