如何使用C ++在運行時獲取內存?我需要在我的程序運行時獲取mem使用VIRT和RES并顯示它們。到目前為止我嘗試了什么:getrusage(http://linux.die.net/man/2/getrusage)int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&usage);cout<<usage.ru_maxrss;但我總是0。
3 回答
莫回無
TA貢獻1865條經驗 獲得超7個贊
舊:
maxrss說明進程的最大可用內存。0表示對該過程沒有限制。您可能想要的是非共享數據使用情況
ru_idrss。
新:看起來上面實際上并不起作用,因為內核沒有填充大部分值。什么工作是從proc獲取信息。而不是自己解析它,使用libproc(procps的一部分)更容易,如下所示:
// getrusage.c#include <stdio.h>#include <proc/readproc.h>int main() {
struct proc_t usage;
look_up_our_self(&usage);
printf("usage: %lu\n", usage.vsize);}用“ gcc -o getrusage getrusage.c -lproc” 編譯
- 3 回答
- 0 關注
- 781 瀏覽
添加回答
舉報
0/150
提交
取消
