2012-07-21 59 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