use*_*872 9 c++ time runtime cpu-usage cpu-time
如果我有以下代码
clock_t t;
t = clock();
//algorithm
t = clock() - t;
Run Code Online (Sandbox Code Playgroud)
t将等于运行程序的滴答数.这与CPU时间相同吗?有没有其他方法来衡量C++中的CPU时间?
操作系统 - Debian GNU/Linux我对任何有用的东西持开放态度.我想比较两种算法的CPU时间.
bam*_*s53 13
clock()指定用于测量CPU时间,但并非所有实现都执行此操作.特别是Microsoft在VS中的实现不会计算多个线程运行时的额外时间,或者计算程序线程休眠/等待的时间也会减少.
另请注意,clock()应该测量整个程序使用的CPU时间,因此在//algorithm测量多个线程使用的CPU时间时,其他不属于的线程//algorithm也会被计算在内.
clock() 是衡量CPU时间的标准中唯一指定的方法,但是当然还有其他特定于平台的测量CPU时间的方法.
std::chrono不包括任何用于测量CPU时间的时钟.它只有一个与系统时间同步的时钟,一个相对于实时以稳定速率前进的时钟,以及一个"高分辨率"但不一定测量CPU时间的时钟.
如何测量使用的 CPU 时间?
#include <ctime>
std::clock_t c_start = std::clock();
// your_algorithm
std::clock_t c_end = std::clock();
long_double time_elapsed_ms = 1000.0 * (c_end-c_start) / CLOCKS_PER_SEC;
std::cout << "CPU time used: " << time_elapsed_ms << " ms\n";
Run Code Online (Sandbox Code Playgroud)
当然,如果您以秒为单位显示时间:
std::cout << "CPU time used: " << time_elapsed_ms / 1000.0 << " s\n";
Run Code Online (Sandbox Code Playgroud)
来源:http : //en.cppreference.com/w/cpp/chrono/c/clock
| 归档时间: |
|
| 查看次数: |
14981 次 |
| 最近记录: |