计算进程消耗的 cpu_time 哪个更好更精确?
a) 顶部 b) cat /proc/pid/stat
“top”和“cat /proc/pid/stat”的输出在任何给定时间点都是相同的。
不同之处在于输出的显示方式。
对于 "top" ,输出动态显示在屏幕上。输出无法保存到文件中,其中未知字符被写入文件中,因为它是动态的。屏幕上打印的输出具有所有进程的状态。
对于 "cat /proc/pid/stat" ,进程的当前状态打印在屏幕上。这仅执行一次,但对于“顶部”,直到用户按下退出,状态才会打印在屏幕上。
这个命令“cat /proc/pid/stat”比打印所有进程的状态更具体到一个特定的进程。
Top 可以使用批处理模式选项在脚本中使用。例如,尝试:
top -b -n 1
但是,您要么想使用-n 2
仅从第二个报告中获取当前信息,要么先设置 CPULOOP=1,然后使用-n 1
. 有关更多信息,请参见:http ://linux.die.net/man/1/top 。
好吧,top
使用/proc
文件系统,所以任何一个都可以,但top
会为你解析 stat 文件,所以我会使用top
. 请注意,top
输出的是动态列表,因此在脚本中,您应该使用其他方式。