C语言 计算 程序的执行时间

1、使用 clock() 函数C 标准库中,clock() 函数可以用来获取程序执行的 CPU 时间。它返回程序自启动以来的时钟周期数,单位是 CLOCKS_PER_SEC,通常是每秒 1000000 或 1000000000 个时钟周期,取决于平台。

#include

#include

int main() {

clock_t start, end;

double cpu_time_used;

start = clock(); // 记录开始时间

// 你的程序代码

for (int i = 0; i < 100000000; i++); // 模拟计算任务

end = clock(); // 记录结束时间

cpu_time_used = ((double)(end - start)) / CLOCKS_PER_SEC; // 计算程序运行的时间(秒)

printf("程序执行时间:%f 秒\n", cpu_time_used);

return 0;

}

2、使用 time 命令(Linux / macOS)在命令行上直接计算程序的执行时间,可以使用 time 命令。这种方法非常适用于脚本和命令行操作。

$ time ./your_program

time 命令会输出程序的运行时间,real 实际经过的时间(包括等待时间)。user CPU 在用户模式下的时间。sys CPU 在内核模式下的时间。

3、使用 gettimeofday() 函数(Linux)gettimeofday() 函数可以提供更精确的时间度量(微秒级别),适用于需要高精度计时的应用场景。

#include

#include

int main() {

struct timeval start, end;

gettimeofday(&start, NULL); // 记录开始时间

// 程序代码

for (int i = 0; i < 100000000; i++); // 模拟计算任务

gettimeofday(&end, NULL); // 记录结束时间

double time_taken = (end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec) / 1000000.0;

printf("程序执行时间:%f 秒\n", time_taken);

return 0;

}

4、使用 QueryPerformanceCounter()(Windows)如果在 Windows 上开发程序,可以使用 QueryPerformanceCounter() 和 QueryPerformanceFrequency() 来计算程序的执行时间。

#include

#include

int main() {

LARGE_INTEGER start, end, frequency;

QueryPerformanceFrequency(&frequency); // 获取频率

QueryPerformanceCounter(&start); // 获取开始时间

// 你的程序代码

for (int i = 0; i < 100000000; i++); // 模拟计算任务

QueryPerformanceCounter(&end); // 获取结束时间

double time_taken = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart;

printf("程序执行时间:%f 秒\n", time_taken);

return 0;

}