从计算机大小的角度来看虚拟内存是
[一种制作程序的方式]想一想 有很多连续的 地址;但实际上是它的部分 目前使用的是分散的 在RAM周围,非活动部分是 保存在磁盘文件中。 (Wikipedia)
我会将Windows任务管理器中的VM大小解释为总可寻址虚拟内存空间或进程当前在虚拟内存空间中使用的内存量。
但在任务管理器中,WM Size在许多情况下比Mem Usage少,后者应该是进程正在使用的RAM量。因此我猜WM大小意味着什么呢?
答案 0 :(得分:8)
这是此进程分配的所有私有(非共享)字节的总和,无论当前是否在物理内存中。
另请参阅An introductory guide to Windows Memory Management或Commit Charge Wikipedia article
对于像这样观看流程状态的开发人员,我建议安装SysInternals Process Explorer并使用它而不是默认的任务管理器。该值在其中称为“私有字节”。
答案 1 :(得分:1)
VM大小的正确答案是什么?
编码恐怖
有多少进程使用频率较低的内存被分页到磁盘。
评论编码恐怖
你的VM大小错了。它是此进程分配的所有私有(非共享)字节的总和,无论当前是否在物理内存中。跟踪“内存泄漏”是否比“内存使用”更有价值。性能监视器中的相同值可用作“进程:专用字节”。
在MSDN中
虚拟内存大小: 提交给进程的虚拟内存量或地址空间量。
我很困惑什么是正确的。
答案 2 :(得分:0)
映射到该进程的地址空间的内存量。这可以包括共享内存映射。
在一个进程中,每个共享对象(DLL)都有一部分内存空间,以及一些堆栈内存和进程本身分配的区域。
例如,在我的系统上查看cat
命令的内存映射,我可以看到它的内存映射。在这种情况下,我使用cat /proc/self/maps
来调查cat进程本身。映射到其虚拟内存的是二进制本身,一些堆,语言环境信息,libc(具有各种权限标志),ld.so(动态链接器),堆栈,vdso和vsyscall部分以及一些匿名映射(没有后备文件的映射页面) )。
00400000-00408000 r-xp /bin/cat
00607000-00608000 rw-p /bin/cat
008ac000-008cd000 rw-p [heap]
7fbd54175000-7fbd543cf000 r--p /usr/lib/locale/locale-archive
7fbd543cf000-7fbd54519000 r-xp /lib/libc-2.7.so
7fbd54519000-7fbd54718000 ---p /lib/libc-2.7.so
7fbd54718000-7fbd5471b000 r--p /lib/libc-2.7.so
7fbd5471b000-7fbd5471d000 rw-p /lib/libc-2.7.so
7fbd5471d000-7fbd54722000 rw-p
7fbd54722000-7fbd5473e000 r-xp /lib/ld-2.7.so
7fbd5491d000-7fbd5491f000 rw-p
7fbd5493a000-7fbd5493d000 rw-p
7fbd5493d000-7fbd5493f000 rw-p /lib/ld-2.7.so
7fff5c929000-7fff5c93e000 rw-p [stack]
7fff5c9fe000-7fff5c9ff000 r-xp [vdso]
ffffffffff600000-ffffffffff601000 r-xp [vsyscall]
对于每个映射,从结束地址中减去起始地址以确定其大小,例如[stack]
行:0x7fff5c9ff000 - 0x7fff5c9fe000 = 0x1000
。十进制,4096字节 - 一个4 kiB堆栈。
如果将所有这些数字相加,您将获得进程的虚拟内存(VM)大小。
VM大小不是确定进程正在使用多少内存的可靠方法。例如,物理内存中只有一个只读/lib/libc-2.7.so
映射的副本,无论有多少进程使用它。
答案 3 :(得分:-2)
编码恐怖帖如何回答这个问题:http://www.codinghorror.com/blog/archives/000393.html
“VM大小:有多少进程使用不常用的内存被分页到磁盘。”
答案 4 :(得分:-3)
我在Windows任务管理器中看不到虚拟机大小,Whatsup Gold在其任务管理器中有一个虚拟机大小 - 你的意思是?在这种情况下,我认为它与VM可用的总量相关