我知道ps中的VSZ是为应用程序分配的总地址空间,有时别名为vsize (在linux上的ps手册页中提到),但是top中VSIZE的定义是什么呢?来自iPhone的这个顶级输出与Linux上的顶层不同:
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324发布于 2011-12-01 12:52:53
Linux系统中充满了内存优化实用程序和内存共享的许多例程,使得内存如何共享和使用的想法,ps和其他ps相关命令的繁琐approach.The输出都会从/proc文件系统下的数据中提取出它们的输出。特别是ps (驻留内存)、rss (驻留内存)和VSIZE (虚拟内存大小)都很重要,但是VSIZE没有显示内存的准确使用,而VSIZE和rss之间的区别实际上是初始化时分配给程序的,但可能还没有被引用。与程序类似,程序可能有很多链接库,但它们尚未加载,因为它们尚未在实际的程序运行时中被引用。RSS给出了程序实际使用的总内存,但可能没有给出内存消耗的真实图片,因为所分配的大部分内存可能与同一进程或其他进程的其他实例共享。在/proc/<processid>/maps下面查看可能会大致了解内存是如何使用的,但它们的安静有时会产生误导。使用命令行中的pmap -x <pid>,可以看到扩展是有用的。
通常更好的实用工具是free和vmstat。free将向您提供当前内存消耗的详细信息,并且vmstat可以用来查看更新的频率。
https://unix.stackexchange.com/questions/18266
复制相似问题