我想獲取每個進程和系統範圍內的內存使用信息。在Windows中,這很容易。 GetProcessMemoryInfo和GlobalMemoryStatusEx可以非常輕鬆地完成這些工作。例如,GetProcessMemoryInfo給出給定進程的「PeakWorkingSetSize」。 GlobalMemoryStatusEx返回系統可用內存。Linux/Windows中的C/C++內存使用API
但是,我需要在Linux上完成。我試圖找到相當於GetProcessMemoryInfo和GlobalMemoryStatusEx的Linux系統API。
我發現'getrusage'。但是,struct rusage中的max'ru_maxrss'(駐留集大小)僅爲零,未實現。另外,我不知道要獲得全系統的空閒內存。
當前的解決方法,我使用的是「system(」ps -p%my_pid -o vsz,rsz「);」。手動記錄到文件。但是,處理數據很髒並且不方便。
我想知道一些花哨的Linux API用於此目的。
您是否想要特定進程使用的內存量或特定線程正在使用的內存量? – ChadNC 2009-11-04 16:04:54
@ChadNC,我想要每個進程和系統,我解決了這個問題。 – minjang 2009-11-05 20:05:22