none
为什么任务管理器里面所有进程占用的内存加起来远远小于内存使用量? RRS feed

  • 问题

  • 我最近发现任务管理器里面,“性能”页签显示的内存占用量很惊人,达到5GB以上。但是我在“进程”页签里面统计了一下,所有进程加起来的内存占用也就2GB左右(注:已经选择“显示所有用户的进程”了)为什么会有这么大的差别呢?难道有别的隐藏程序在占用内存吗?我很担心是病毒或者什么间谍程序之类的。请问微软的Windows7,是如何统计内存占用的?

    da jia hao!

    2012年7月25日 3:04

答案

  • 谢谢。不过我还是没办法解决这样一个问题:就是知道内存究竟都被那些程序占用了。因为从进程列表里面看,所占内存很小,剩下的内存都被谁用了?我很担心是病毒或者间谍程序,希望能够找出来。


    da jia hao!

    哎,还是简短得解释一下Taskmgr里进程内存总和为什么不等于"性能"标签里的数字吧。

    任务管理器里的进程内存(默认不添加其他几个内存columns的话),那个仅指Working Set(Private Bytes),不含Shared Memory/Mapped File等,更不包含Kernel Mode的内存堆(NonPaged/Paged Pool)等等等等。。。

    不过"性能"下面的内存Available倒是准确的数值,能反映你物理内存有多少是可用的

    所以,你要精确地去看内存,必须使用VMMap以及Rammap这种终极工具。

    我上这个图,你应该就能理解了,这里Total是被"性能"标签统计的,Private是"进程"标签统计的,而从总体物理内存使用角度看,应当以Total计算


    Rammap彻底解释任务管理器的进程(专用工作集)总和为什么小于"性能"下的值



    • 已编辑 Finy 2012年7月26日 4:22
    • 已标记为答案 liubin 2012年7月26日 5:53
    2012年7月26日 3:15

全部回复

  • 呵呵,这个问题很好。

    我想你如果看过 Mark Russinovich 的 TechED讲座 Mysteries of Memory Management Revealed,就明白了。强烈推荐看一下。


    补一句:你用VMMap以及Rammap才能好地了解内存的真实使用情况,以上讲座就是拿这两工具做的演示。系统自带的Taskmgr对于内存的统计,只能算是个业余产品,Mark Russinovich在讲座里都在调侃它。。。
    • 已编辑 Finy 2012年7月25日 12:35
    2012年7月25日 8:21
  • 關於這個問題, 你也可以先閱讀一下下面幾篇文章

    Windows内存管理机密+揭穿内存优化工具的骗局
    http://blogs.itecn.net/blogs/ahpeng/archive/2007/04/13/WinMemMgmt.aspx

    SuperFetch,您受委屈了(一)
    http://blogs.itecn.net/blogs/winvista/archive/2007/06/12/superfetch1.aspx

    SuperFetch,您受委屈了(二)
    http://blogs.itecn.net/blogs/winvista/archive/2007/06/18/superfetch.aspx


    Folding@Home

    2012年7月25日 12:10
  • 谢谢。不过我还是没办法解决这样一个问题:就是知道内存究竟都被那些程序占用了。因为从进程列表里面看,所占内存很小,剩下的内存都被谁用了?我很担心是病毒或者间谍程序,希望能够找出来。


    da jia hao!

    2012年7月26日 2:50
  • 谢谢。不过我还是没办法解决这样一个问题:就是知道内存究竟都被那些程序占用了。因为从进程列表里面看,所占内存很小,剩下的内存都被谁用了?我很担心是病毒或者间谍程序,希望能够找出来。


    da jia hao!

    哎,还是简短得解释一下Taskmgr里进程内存总和为什么不等于"性能"标签里的数字吧。

    任务管理器里的进程内存(默认不添加其他几个内存columns的话),那个仅指Working Set(Private Bytes),不含Shared Memory/Mapped File等,更不包含Kernel Mode的内存堆(NonPaged/Paged Pool)等等等等。。。

    不过"性能"下面的内存Available倒是准确的数值,能反映你物理内存有多少是可用的

    所以,你要精确地去看内存,必须使用VMMap以及Rammap这种终极工具。

    我上这个图,你应该就能理解了,这里Total是被"性能"标签统计的,Private是"进程"标签统计的,而从总体物理内存使用角度看,应当以Total计算


    Rammap彻底解释任务管理器的进程(专用工作集)总和为什么小于"性能"下的值



    • 已编辑 Finy 2012年7月26日 4:22
    • 已标记为答案 liubin 2012年7月26日 5:53
    2012年7月26日 3:15
  • 你的 Windows 7 应该是开启了 SuperFetch 并建立了大量缓存。任务管理器显示的内存占用只是进程实际占用的内存值而已。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "liubin"
     
    我最近发现任务管理器里面,“性能”页签显示的内存占用量很惊人,达到5GB以上。但是我在“进程”页签里面统计了一下,所有进程加起来的内存占用也就2GB左右(注:已经选择“显示所有用户的进程”
     
     
    2012年7月26日 3:19
  • 您好,

    感谢Finy的精彩回答。也希望以后对内存占用机制不明白的朋友仔细看下Finy的介绍。

    2012年7月26日 8:55
    版主
  • 你好,我的电脑突然也很卡,按照你的方法,截图如下:

    我没太懂你的话,现在我看了看,好像是那个mapped filed很大是吗,我只是想知道,我的电脑为什么会那么卡,是什么软件在用我的电脑,病毒?还是其他什么的,我应该

    怎么才能找到那些文件,给删了,或者怎么才能找到那些病毒呢,谢谢


    2012年10月12日 9:37
  • 你好,我的电脑突然也很卡,按照你的方法,截图如下:

    我没太懂你的话,现在我看了看,好像是那个mapped filed很大是吗,我只是想知道,我的电脑为什么会那么卡,是什么软件在用我的电脑,病毒?还是其他什么的,我应该

    怎么才能找到那些文件,给删了,或者怎么才能找到那些病毒呢,谢谢

    2012年10月12日 9:39
  • 你好,我的电脑突然也很卡,按照你的方法,截图如下:

    我没太懂你的话,现在我看了看,好像是那个mapped filed很大是吗,我只是想知道,我的电脑为什么会那么卡,是什么软件在用我的电脑,病毒?还是其他什么的,我应该

    怎么才能找到那些文件,给删了,或者怎么才能找到那些病毒呢,谢谢

    ps:我只是个菜鸟,没看过那些大虾的什么讲座,我只想要解决问题就好

    2012年10月12日 9:41
  • 你好,我的电脑突然也很卡,按照你的方法,截图如下:

    我没太懂你的话,现在我看了看,好像是那个mapped filed很大是吗,我只是想知道,我的电脑为什么会那么卡,是什么软件在用我的电脑,病毒?还是其他什么的,我应该

    怎么才能找到那些文件,给删了,或者怎么才能找到那些病毒呢,谢谢

    ps:我只是个菜鸟,没看过那些大虾的什么讲座,我只想要解决问题就好

    2012年10月12日 9:42
  • 你好,我的电脑突然也很卡,按照你的方法,截图如下:

    我没太懂你的话,现在我看了看,好像是那个mapped filed很大是吗,我只是想知道,我的电脑为什么会那么卡,是什么软件在用我的电脑,病毒?还是其他什么的,我应该

    怎么才能找到那些文件,给删了,或者怎么才能找到那些病毒呢,谢谢

    ps:我只是个菜鸟,没看过那些大虾的什么讲座,我只想要解决问题就好

    2012年10月12日 9:42
  • 谢谢!终于知道了
    2016年3月27日 14:42