+ -
当前位置:首页 → 问答吧 → 怎么查看进程使用的内存,像windows下的任务管理器一样

怎么查看进程使用的内存,像windows下的任务管理器一样

时间:2011-09-22

来源:互联网

我写了个程序,不断循环的分配内存,然后用top -p pid去查看进程内存,怎么一直都显示的是0.

作者: NOLA   发布时间: 2011-09-22

top -p pid的方式是没有问题的 除非你程序有问题 看我的结果 注意%MEM那一列
C/C++ code

# top -p 19693
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19693 nginx     16   0  156m  16m  10m S  0.0  3.3   0:00.45 php-cgi

作者: steptodream   发布时间: 2011-09-22

就是用top -p pid,RES 列代表内存

作者: kqh168   发布时间: 2011-09-22

VIRT RES 这个程序运行的时候一直都在增加,说明一直在分配。我刚才看了%MEM一直都是0,我还以为没有分配,但也奇怪为什么这个值一直都是0.

作者: NOLA   发布时间: 2011-09-22

time 也一直都是0,cpu也是0.

作者: NOLA   发布时间: 2011-09-22

程序就是这样:
#include <iostream.h>

int main()
{
  char* p[1024];
  for(int i=0;i<1024;i++)
  {
  p[i] = new char[1024*1024*5];
  sleep(1);
  }

  for(int i=0;i<1024;i++)
  {
  delete []p[i];
  }

  return 0;
}

作者: NOLA   发布时间: 2011-09-22