技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> linux下的内存查看(virt,res,shr,data的意义)

linux下的内存查看(virt,res,shr,data的意义)

浏览:4963次  出处信息

    其实在认真阅读了这篇名为“计算内存使用”的文章之后,还是处于半迷糊状态。这位作者就说Linux下面没有特别好的显示内存占用的工具,虽然有top和free,但都说得不清楚,就跟巫毒教的魔术似的。

    比如top这个工具,它会显示3种数据,作者分别解释如下:

以下是引用片段:

VIRT:virtual memory usage。Virtual这个词很神,一般解释是:virtual adj.虚的, 实质的, [物]有效的, 事实上的。到底是虚的还是实的?让Google给Define之后,将就明白一点,就是这东西还是非物质的,但是有效果的,不发生在真实世界的,发生在软件世界的等等。这个内存使用就是一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。写程序怕出错,又不在乎占用的时候,多开点内存也是很正常的。

RES:resident memory usage。常驻内存。这个值就是该应用程序真的使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。

SHR:shared memory。共享内存。就是说这一块内存空间有可能也被其他应用程序使用着;而Virt - Shr似乎就是这个程序所要求的并且没有共享的内存空间。

DATA:数据占用的内存。如果top没有显示,按f键可以显示出来。这一块是真正的该程序要求的数据空间,是真正在运行中要使用的。

    所以DATA的含义比较确定,甚至可以用程序读取的数据量计算出来;SHR是一个潜在的可能会被共享的数字,如果只开一个程序,也没有别人共同使用它;VIRT里面的可能性更多,比如它可能计算了被许多X的库所共享的内存;RES应该是比较准确的,但不含有交换出去的空间;但基本可以说RES是程序当前使用的内存量。

    这篇文章是转载的,保存下来,仅作参考。

建议继续学习:

  1. HTML 5 的data-* 自定义属性    (阅读:13137)
  2. Linux内存点滴 用户进程内存空间    (阅读:11598)
  3. ps - 按进程消耗内存多少排序    (阅读:11356)
  4. Linux Used内存到底哪里去了?    (阅读:10021)
  5. Linux操作系统的内存使用方法详细解析    (阅读:8921)
  6. linux内核研究笔记(一)内存管理 – page介绍    (阅读:8766)
  7. top 命令补充 ( VIRT RES SHR)    (阅读:8068)
  8. 几个内存相关面试题(c/c++)    (阅读:8073)
  9. jQuery的data()方法    (阅读:7636)
  10. 内存越界的概念和调试方法    (阅读:6343)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1