这阵子在做项目,需要从内核态获取数据,但是感觉读取的很慢,所以就想看看进行一次系统调用需要多少时间
这时候需要输出一下程序的运行时间或者某一行代码的具体运行时间,看下是不是在系统调用上花了很多时间
1. 统计整个程序的运行时间,可以用time命令
#time ./test
real 0m2.913s
user 0m0.012s
sys 0m0.508s
使用time命令,后面接可执行程序,便会显示所需时间
2.使用clock()进行统计
#include<stdio.h>
#include <time.h> /*要包含的头文件*/
int main(int argc, char *argv[])
{
clock_t start, end; //用于保存当前时间
start = clock(); /*记录起始时间*/
read(...); //这里可换成想统计运行时间的相关代码
end = clock(); /*记录结束时间*/
{
double seconds =(double)(end - start)/CLOCKS_PER_SEC;
//CLOCKS_PER_SEC用于将clock()函数的结果转化为以秒为单位的量
printf("Use time is: %.10f\n", seconds); //把结果输出
}
return 0;
}
time命令在不修改代码的情况下记录程序运行时间,不过time命令统计时间的结果比较粗糙。 而且统计的结果包括程序加载和退出的时间。
若想得出函数运行时间较为准确的结果,建议使用clock()函数。