2012-07-21 56 views
0

我在linux(C++代码)中运行可执行文件。我想计算此可执行文件的“平均”工作集大小?我不知道如何继续。有人可以帮我吗?进程的平均工作集大小

在linux中是否有任何命令可以这样做?

在此先感谢

+0

你能PL尽量靠前指挥http://linux.about.com/od/commands/l/blcmdl1_top.htm或vmstat的HTTP: //en.wikipedia.org/wiki/Vmstat – 2012-07-21 17:24:14

+1

看看这个网页http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html – Caesar 2012-07-21 17:27:08

+0

谢谢,How do我得到它的平均水平? – mohan 2012-07-21 17:33:39

回答

3

灵感来自凯撒:

pid=`ps axo 'pid,ucomm' | grep procname | awk '{print $1;}'` 
while sleep 15; do grep VmRSS /proc/$pid/status || break; done > /tmp/size 
awk '{ sum += $2; count++; } END { print sum/count; }' /tmp/size 
+0

谢谢,这解决了我的问题。还有一个疑问,Will vmsat或sar也是这样吗?因为这是我的朋友 – mohan 2012-07-22 19:34:15

+1

@mohan:vmstat给你*系统*内存信息。如果你的机器什么都不做,是单用户模式等,那么比较之前和期间可以让你确定工作集是什么。但是在正常的操作中,一般来说太多的其他东西会得到一个强有力的结论。 sar或多或少都是一样的。这是系统会计,而不是过程会计。 – 2012-07-22 22:09:26

+0

[居民套装尺寸](https://en.wikipedia.org/wiki/Resident_set_size)不是[工作集尺寸](https://en.wikipedia.org/wiki/Working_set_size)。 – 2015-05-02 12:41:28