time - Linux下统计程序运行时间
Contents
Linux下编程时,当我们需要统计一个程序的执行时间,可以使用系统的time程序。根据这篇文章的描述,time命令获取一个程序的执行时间包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。
下面是一段示例代码,向文件中写入几行数字:
|
|
运行:12$g++ test.cc $time ./a.out
结果:123real 0m0.020suser 0m0.001ssys 0m0.003s
可以看出,该程序实际运行时间为0.02秒,用户态运行时间0.001s,内核态运行时间为0.003s。内核态运行时间较长是因为使用了文件相关的系统调用,主要工作是在写文件。你可能发现,real并不是user和sys的总和,这是因为real代表的是程序从开始到结束的全部时间,即使程序不占CPU也统计时间。而user+sys是程序占用CPU的总时间,因此real总是大于或者等于user+sys的。下面我们用sleep来验证一下:
|
|
运行结果:
|
|
可以看出,睡眠时,程序并不占用user和sys的时间。
Over.