Windows任务管理器中的" VM大小"是什么意思?

时间:2020-03-05 18:43:08  来源:igfitidea点击:

从计算机大小的角度来看,虚拟内存是

[a way to make the program] think it
  has a large range of contiguous
  addresses; but in reality the parts it
  is currently using are scattered
  around RAM, and the inactive parts are
  saved in a disk file. (Wikipedia)

我将Windows任务管理器中的VM Size解释为可寻址虚拟内存总空间或者该进程当前在虚拟内存空间中使用的内存量。

但是在任务管理器中,WM大小在许多情况下小于"内存使用量",后者应为进程使用的RAM数量。因此,我想WM尺寸还有其他含义吗?

解决方案

回答

编码恐怖帖子如何回答这个问题:http://www.codinghorror.com/blog/archives/000393.html

" VM大小:已将多少个进程的不经常使用的内存分页到磁盘上。"

回答

映射到该进程的地址空间的内存量。这可以包括共享内存映射。

在一个进程中,每个共享对象(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映射只有一个副本,而不管有多少个进程使用它。

回答

VM大小的正确答案是什么?

  • 在编码恐怖中
How much of the processes' less frequently used memory has been paged to disk.
  • 评论恐怖编码
You're wrong on VM Size. It's the total of all private (not shared) bytes allocated by this process, whether currently in physical memory or not. It's a better value for tracking whether you have a memory leak than 'Mem Usage'. The same value is available in Performance Monitor as 'Process: Private Bytes'.
  • 在MSDN中
Virtual Memory Size : 
  The amount of virtual memory, or address space, committed to a process.

我混淆了什么是科伦特。

回答

它是此进程分配的所有私有(非共享)字节的总和,无论当前是否在物理内存中。

另请参阅Windows内存管理入门指南或者"提交费用Wikipedia"一文。

对于这样的开发人员来说,我建议其安装SysInternals Process Explorer并使用它代替默认的Task Manager,以查看过程状态。此值在其中称为"专用字节"。

回答

我在Windows任务管理器中看不到VM大小,Whatup Gold在其任务管理器中有VM大小,这是意思吗?在这种情况下,我相信它与VM可用的总量有关