我只是想跟蹤各種進程正在使用多少內存(不同的選項可以從根本上改變這個特定應用程序的內存使用情況)。我不喜歡在其他地方描述的各種「查找過程pid和grok/proc/pid/smaps」解決方案...運行Valgrind會減慢我的應用程序嗎?
是否有一個替代命令使用它只會轉儲特定進程的內存使用情況? MEMUSAGE?
我只是想跟蹤各種進程正在使用多少內存(不同的選項可以從根本上改變這個特定應用程序的內存使用情況)。我不喜歡在其他地方描述的各種「查找過程pid和grok/proc/pid/smaps」解決方案...運行Valgrind會減慢我的應用程序嗎?
是否有一個替代命令使用它只會轉儲特定進程的內存使用情況? MEMUSAGE?
剛看了一下「time valgrind memhog 1024m」,它慢了大約10倍。不要注意到'memusage'的放緩。
據Valgrind Manual,Valgrind的會很明顯的減慢你的應用程序:
的儀表代碼添加量工具之間的差別很大。 在量表的一端,Memcheck添加代碼來檢查每個存儲器的訪問權限和計算出的每個值,使其運行速度比原始的 慢10-50倍。另一方面,稱爲 Nulgrind的最小工具根本不增加任何儀器,總共導致「僅」 約減慢4倍。
以我的經驗Valgrind的確實減慢了大約係數降低應用程序10
如何詳細你需要的內存使用情況要報告?是top
(RES
列)不夠?
頂部(RES列)是好的,我只是想自動的方式來做到這一點。 – 2015-04-03 13:48:53
然後,可能會嘗試這樣的:'awk'{print 4 * $ 2}' proc/30321/statm'將打印PID 30321的RES內存使用量(以千字節爲單位)。請參見「man proc」(http:/ /linux.die.net/man/5/proc)以瞭解/ proc//statm文件的含義的詳細信息。 –
oliver
2015-04-07 08:38:35
有沒有一種方法可以在一行中找到pid?即「run_x; awk'{print 4 * $ 2}' proc/$ {xxy}/statm」? – 2015-04-08 13:21:45