📜  C C++中的clock()函数(1)

📅  最后修改于: 2023-12-03 14:39:37.076000             🧑  作者: Mango

C和C++中的clock()函数

clock()函数位于<ctime>库(对于C++是<ctime><chrono>库)。它用于衡量程序运行所花费的CPU时间。本篇介绍将重点讨论C和C++中的clock()函数。

使用方法

clock()函数的使用方法如下:

#include <stdio.h>
#include <time.h>

int main() {
    clock_t start_time, end_time;
    double cpu_time_used;

    start_time = clock();
    // 执行你的代码
    end_time = clock();

    cpu_time_used = ((double)(end_time - start_time)) / CLOCKS_PER_SEC;
    
    printf("程序执行花费的CPU时间为 %f seconds\n", cpu_time_used);
   
    return 0;
}
解析
  1. 包含所需的头文件<stdio.h><time.h>
  2. 声明变量start_timeend_time类型为clock_t,用于存储时间。
  3. 声明变量cpu_time_used类型为double,用于存储CPU时间。
  4. start_time = clock():该语句记录程序开始执行时的时间。
  5. 执行你的代码。
  6. end_time = clock():该语句记录程序执行结束时的时间。
  7. cpu_time_used = ((double)(end_time - start_time)) / CLOCKS_PER_SEC:计算程序执行所花费的CPU时间(以秒为单位)。
  8. 打印结果。
注意事项
  • start_timeend_time的类型为clock_t,这是一个整数类型,表示从某一固定点开始所经过的时钟周期数。
  • CLOCKS_PER_SEC是一个常量,它表示每秒钟的时钟周期数。
  • 返回的时间单位是秒。
  • clock()函数所测量的时间是CPU时间,而不是实际经过的时间。所以,在多核处理器中,每个核心的时间会单独计算。
  • clock()函数并不适用于测量精确的时间间隔,它通常用于性能分析和速度比较。
示例

以下示例演示了clock()函数在C和C++中的使用方法:

#include <stdio.h>
#include <time.h>

int main() {
    clock_t start_time, end_time;
    double cpu_time_used;

    start_time = clock();
    for (int i = 0; i < 1000000000; i++);  // 注意:这是一个耗时的循环
    end_time = clock();

    cpu_time_used = ((double)(end_time - start_time)) / CLOCKS_PER_SEC;
    
    printf("程序执行花费的CPU时间为 %f seconds\n", cpu_time_used);
   
    return 0;
}
#include <iostream>
#include <chrono>

int main() {
    std::chrono::high_resolution_clock::time_point start_time, end_time;
    double cpu_time_used;

    start_time = std::chrono::high_resolution_clock::now();
    for (int i = 0; i < 1000000000; i++);  // 注意:这是一个耗时的循环
    end_time = std::chrono::high_resolution_clock::now();

    cpu_time_used = std::chrono::duration<double>(end_time - start_time).count();

    std::cout << "程序执行花费的CPU时间为 " << cpu_time_used << " seconds" << std::endl;
   
    return 0;
}
结论

clock()函数是C和C++中用于测量程序运行花费的CPU时间的常用函数。在性能分析和速度比较方面有广泛的应用。务必注意它所衡量的是CPU时间而不是实际经过的时间,且在多核处理器中每个核心的时间是单独计算的。