如果我使用
/usr/bin/time -f"%e,%P,%M,%I,%O"
我得到(最后三个占位符)进程使用的内存,以及是否有一些输入和输出。
显然,使用%e
很容易获得sys/time.h
或类似内容,但有办法获得%M
,%I
和{{ 1}}以编程方式?
答案 0 :(得分:2)
您可以读取并解析/proc
文件系统中的文件。 /proc/self
是指访问/proc
文件系统的进程。
/proc/self/statm
包含有关内存使用情况的信息,以页为单位。样本输出:
% cat /proc/self/statm
1115 82 63 12 0 79 0
字段为size resident share text lib data dt
;有关其他详细信息,请参阅proc
手册页。
/proc/self/io
包含当前进程的I / O.样本输出:
% cat /proc/self/io
rchar: 2012
wchar: 0
syscr: 6
syscw: 0
read_bytes: 0
write_bytes: 0
cancelled_write_bytes: 0
不幸的是,io
手册页(至少在我的Debian系统中)没有记录proc
。我也检查了iotop
源代码,看看它是如何获得每个进程的I / O信息的。