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;
}