从计算机大小的角度来看,虚拟内存是
【让程序的一种方式】认为它有大范围的连续地址;但实际上它当前使用的部分分散在 RAM 周围,不活动的部分保存在磁盘文件中。(维基百科)
我会将 Windows 任务管理器中的 VM 大小解释为总可寻址虚拟内存空间或进程当前在虚拟内存空间中使用的内存量。
但在任务管理器中,WM 大小在许多情况下小于内存使用量,这应该是进程正在使用的 RAM 量。因此,我猜 WM Size 意味着别的什么?
从计算机大小的角度来看,虚拟内存是
【让程序的一种方式】认为它有大范围的连续地址;但实际上它当前使用的部分分散在 RAM 周围,不活动的部分保存在磁盘文件中。(维基百科)
我会将 Windows 任务管理器中的 VM 大小解释为总可寻址虚拟内存空间或进程当前在虚拟内存空间中使用的内存量。
但在任务管理器中,WM 大小在许多情况下小于内存使用量,这应该是进程正在使用的 RAM 量。因此,我猜 WM Size 意味着别的什么?
它是此进程分配的所有私有(非共享)字节的总和,无论当前是否在物理内存中。
另请参阅Windows 内存管理或提交费用 Wikipedia 文章的介绍性指南
对于像这样观察进程状态的开发人员,我建议安装SysInternals Process Explorer并使用它而不是默认的任务管理器。这个值在其中被称为“Private Bytes”。
关于 VM 大小的正确答案是什么?
在编码恐怖中
有多少进程不常用的内存已分页到磁盘。
评论编码恐怖
你错了虚拟机大小。它是此进程分配的所有私有(非共享)字节的总和,无论当前是否在物理内存中。跟踪您是否有内存泄漏比“内存使用”更有价值。性能监视器中的值与“进程:私有字节”相同。
在 MSDN 中
虚拟内存大小:提交给进程的虚拟内存量或地址空间。
我很困惑什么是正确的。
映射到该进程地址空间的内存量。这可以包括共享内存映射。
在一个进程中,每个共享对象 (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
映射在物理内存中只有一个副本,无论有多少进程使用它。
一个编码恐怖帖子如何回答这个问题:http: //www.codinghorror.com/blog/archives/000393.html
“VM 大小:有多少进程不常用的内存已分页到磁盘。”
我在 Windows 任务管理器中看不到 VM 大小,Whatup Gold 在其任务管理器中有一个 VM 大小 - 你是说这个吗?在这种情况下,我相信它与 VM 可用的总量有关