如何确定一个进程的运行时间?
在谷歌关于 ps 命令之后,我可以使用 ps 命令通过以下方式获取进程运行时间:
ps -eo pid,id,cmd,etime,time
我在谷歌看到的大部分文章都使用 etime(经过时间)来确定进程运行时间。
但我也在 stackoverflow.com 中发现了一个类似的问题,获取 Linux 中用户进程的执行时间和他/她使用时间参数?
所以我的问题是, ps 命令中的 etime 和 time 参数有什么区别,哪个参数能够获得进程的实际运行时间。
如何确定一个进程的运行时间?
在谷歌关于 ps 命令之后,我可以使用 ps 命令通过以下方式获取进程运行时间:
ps -eo pid,id,cmd,etime,time
我在谷歌看到的大部分文章都使用 etime(经过时间)来确定进程运行时间。
但我也在 stackoverflow.com 中发现了一个类似的问题,获取 Linux 中用户进程的执行时间和他/她使用时间参数?
所以我的问题是, ps 命令中的 etime 和 time 参数有什么区别,哪个参数能够获得进程的实际运行时间。
etime测量“挂钟时间”,即现在与进程开始时刻之间的差异。
time(别名cputime)测量 CPU 忙于执行进程代码的时间。当进程正在等待网络或磁盘或只是休眠时,此计数器不会增加。当进程使用多个线程并行执行某些代码时,此计数器会与忙于相关进程的 CPU 数量成比例增加。time通常远小于etime,除非该过程进行大量计算。
$ man ps
etime ELAPSED elapsed time since the process was started, in the form [[DD-]hh:]mm:ss.
time TIME cumulative CPU time, "[DD-]HH:MM:SS" format. (alias cputime).
使用linux命令时间。它记录了三种进程的运行时间。真实:墙上的时间。user:用户空间时间。sys:内核空间时间。