1、使用 clock() 计算时间
clock()
是 C 标准库中的一个函数,它返回程序运行的“时钟滴答数”,通常用于测量 CPU 执行时间。clock()
返回的是一个 clock_t
类型的值,可以通过它来计算程序运行的时间。
#include <stdio.h> #include <time.h> int main() { // 获取开始时间 clock_t start_time = clock(); // 模拟一个耗时的操作(例如循环计算) for (volatile int i = 0; i < 1000000000; i++) { // 空操作 } // 获取结束时间 clock_t end_time = clock(); // 计算并输出程序运行的时间(以秒为单位) double elapsed_time = (double)(end_time - start_time) / CLOCKS_PER_SEC; printf("Elapsed time: %f seconds\n", elapsed_time); return 0; }
2、使用 gettimeofday() 计算实际时间
gettimeofday()
是一个更为精确的方法,返回从1970年1月1日以来的秒数和微秒数,非常适用于测量实际经过的时间。
#include <stdio.h> #include <sys/time.h> int main() { struct timeval start_time, end_time; // 获取开始时间 gettimeofday(&start_time, NULL); // 模拟一个耗时的操作 for (volatile int i = 0; i < 1000000000; i++) { // 空操作 } // 获取结束时间 gettimeofday(&end_time, NULL); // 计算经过的时间(秒和微秒) double elapsed_time = (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec) / 1000000.0; printf("Elapsed time: %f seconds\n", elapsed_time); return 0; }
3、使用 time() 测量简单的时间
time()
是一个非常简单的方式来获取当前时间。它返回从1970年1月1日以来的秒数。适用于那些不需要微秒级别精度的简单计时任务。
#include <stdio.h> #include <time.h> int main() { time_t start_time, end_time; // 获取开始时间 time(&start_time); // 模拟一个耗时的操作 for (volatile int i = 0; i < 1000000000; i++) { // 空操作 } // 获取结束时间 time(&end_time); // 计算并输出程序运行的时间(以秒为单位) double elapsed_time = difftime(end_time, start_time); printf("Elapsed time: %f seconds\n", elapsed_time); return 0; }