查看: 19452|回复: 40
收起左侧

[已解决] 对 任务管理器中 “内存使用”“虚拟内存大小” 错误名称的解析(第2.5版)(申精)

   关闭 [复制链接]
brilight
发表于 2010-2-10 12:33:03 | 显示全部楼层 |阅读模式
本帖最后由 brilight 于 2010-4-23 12:55 编辑

我们先做个实验:
     

     

     

结果发现什么:最小化窗口,总内存508MB不会减少,但是程序 所谓的”内存使用“却减少了(81MB -->18MB)?

物理内存,有一部分是给进程的私自使用的,另一部分是给共享文件使用的,还有一部分是给内核使用的。

程序运行后,不仅依赖于自己,还依赖于系统的资源(例如要求让屏幕显示),所以程序使用的内存不仅包括自己的私有内存,还包括系统模块占用的内存,内核的内存。为了实现一些特殊的功能,某些程序会加载自己的驱动程序sys文件(例如各种硬件驱动,虚拟光驱软件,杀毒软件),而sys文件是系统共享的,sys文件使用的内存不会显示在进程中,而是会占用整个系统的内存。例如Ramdisk驱动可以占用1GB内存当作磁盘,Process Monitor驱动可以占用300MB记录日志文件,网银,支付宝也使用了驱动。
所以把所有程序的私有内存相加,肯定不等于总内存。

如何查看进程真实的内存占用?
  在系统内存平稳的情况下,
       对于普通的程序,开机后 查看程序冷启动前 和 启动后 的系统“总”内存差值。
       对于需要重启的软件,(如杀毒软件),先重启 在安装前 记录下系统的总占用内存,再重启 再记录一下,差值就是了。

如果只有A.exe 和B.exe 使用z.dll,先启动的程序会加载z.dll,后启动的不会加载z.dll。你把这个dll的内存占用归于谁?归于先启动的。所以对于后启动的程序,用上面的方法计算出的内存占用会变小。所以我建议所有程序测试应该是在重启后立即测试。而不应该打开一大堆程序再测试。

从第2和第3张图片看到,程序最小化以后,“内存使用”这个值减小了呢(81MB变为18MB),而总内存507MB保持不变!无论怎么减少所谓的“内存使用”,物理内存占用都不会减少。
其实任务管理器中 “内存使用” 这个术语是错误的:这个和内存占用无关。

另一个名词,“虚拟内存大小”这个术语也是错误的:这个是进程的私有内存(英文private size) ,这个显示的值 < 程序实际占用内存 。  
所以你应该明白了:在任务管理器中,“内存使用”这个值毫无意义,“虚拟内存大小” 这个值也肯定少于真正占用的内存。

解释和结论:

1.任务管理器中的“内存占用” 应该为 “Working set” ,(=进程最近使用过的内存)。和内存占用无关。

2.任务管理器中的“虚拟内存占用” 应该为 “private size”(=进程私有内存). 程序真正占用的内存 > Private size

3.控制面板 -->系统 --> 性能 里面有一项 叫“虚拟内存”,其实这种说法是错误的。应该叫“页面文件”,指的是 把一快的硬盘区域当成内存一样读写,跟程序使用多少内存无关。页面文件是不会反应在任务管理器的进程中的。

4.通过任务管理器总内存的变化可以计算程序内存


如有疏漏,欢迎系统内核高手指教。

评分

参与人数 1经验 +5 收起 理由
淘金者 + 5 版区有你更精彩: )

查看全部评分

无产阶级
发表于 2010-2-10 13:10:32 | 显示全部楼层
没看明白····我真是小白··
JY-YZX714
发表于 2010-2-10 13:23:39 | 显示全部楼层
文章倒是没问题,就是感觉有点文不对题~
brilight
 楼主| 发表于 2010-2-10 13:49:39 | 显示全部楼层
没看明白····我真是小白··
无产阶级 发表于 2010-2-10 13:10



        做了大幅修改,这回应该好懂了
brilight
 楼主| 发表于 2010-2-10 14:00:42 | 显示全部楼层
文章倒是没问题,就是感觉有点文不对题~
JY-YZX714 发表于 2010-2-10 13:23



    有什么问题尽管提,我接着修改
baibao578
发表于 2010-2-10 14:06:20 | 显示全部楼层
那请问LZ 如何查看某程序的真正内存占用呢?
brilight
 楼主| 发表于 2010-2-10 14:10:16 | 显示全部楼层
那请问LZ 如何查看某程序的真正内存占用呢?
baibao578 发表于 2010-2-10 14:06



    在最后有方法
baibao578
发表于 2010-2-10 14:22:00 | 显示全部楼层
回复 7# brilight


    有软件能做到吗?
brilight
 楼主| 发表于 2010-2-10 14:27:17 | 显示全部楼层
回复  brilight


    有软件能做到吗?
baibao578 发表于 2010-2-10 14:22



    任务管理器最下面有总内存占用
baibao578
发表于 2010-2-10 14:28:14 | 显示全部楼层
回复 9# brilight

就是那个“虚拟内存占用”?
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-7-1 21:51 , Processed in 0.130157 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表