查看: 8757|回复: 47
收起左侧

[讨论] 内存和虚拟内存占用的比例会影响一款杀软的流畅度?实验开始。

  [复制链接]
tokthoo
发表于 2011-4-12 22:20:01 | 显示全部楼层 |阅读模式
本帖最后由 tokthoo 于 2011-4-12 23:33 编辑

总所周知内存占用会影响一个软件的流畅度。
但是除了内存占用这个因素以外,虚拟内存的占用也是另一个导致软件不流畅的因素。
前者,是N年前导致软件不流畅的主因(以前的内存普遍偏小...)
后者,是现代导致软件不流畅的原因(现在的电脑内存一般够用,甚至有余)

我们可以相信一些软件为了让内存占用看起来很小(因为大多数“凡人”会看内存占用,而不会看甚至不懂虚拟内存),
所以把许多数据丢在虚拟内存运行,或许如监控啊什么的。
而所谓的虚拟内存,既是把硬盘上的空闲空间虚拟化成内存,让一些软件把不常用的数据放在其中运行。
但是我们知道,硬盘的运行速度怎么可以和内存相比?两者的速度可是有着几千倍的差别存在。
也因为太多的东西放在虚拟内存,所以当需要调用到这些资料的时候,CPU就不得不从硬盘上读取这些数据,从而导致卡U现象。
这个除了受到CPU影响,还受到硬盘的影响,比如硬盘素质,硬盘转速。
最好的例子就是看看NOD。
nod不卡机因为nod宁愿把内存占用多一些一些,虚拟内存用少一些。

又比如360卫士最近的优化(打开界面变快),其实可以发现现在的360卫士界面程序(360safe.exe)已经调整了内存和虚拟内存之间的占用比例。上两张图,一目了然,7.6版本,还没优化速度。 7.8版本经过优化。

7.6 界面程序:虚拟内存占用比内存高,所以会感觉卡卡。

7.8界面程序: 减少虚拟内存占用,内存占用放大,界面变得顺畅很多


接下来我们来看看几个杀软的内存和虚拟内存的占用比例。
补充:全部是系统静态时各个杀软的占用状态。

可以看见NIS的内存占用和虚拟内存占用比例很平均。虚拟内存占用很小,
NIS的却不卡机。



接下来我们看看ESS的。哇,虚拟内存不小。
但是ESS不吝啬的把许多最常用的数据放进内存,内存占用甚至大于虚拟内存占用,所以ESS也不会卡机。
我们可以猜测:如果ESS为了降低内存占用而把数据塞进常人看不见的虚拟内存,比如内存占用20+,虚拟内存 90+,
那么ESS一定没有现在那么流畅。



360杀毒就是典型的为了让内存占用看起来低,所以把东西塞进虚拟内存的类型。
但是幸好360的监控采用了和其他厂商不一样的概念,所以可以估计塞在虚拟内存的东西真的都是一些不常用的数据。所以360也不卡。而且很聪明的分配内存占用:刚启动的时候由于比较多程序需要实时监控的扫描,所以内存占用高:

但是当一切稳定下来后,实时监控“冷静”下来时(我们知道360的实时监控不灵敏,主要原因是为了降低资源占用)。
内存占用就会降下。这是360以牺牲监控灵敏度换来的低内存占用。

最后我们来看看卡巴斯基的内存和虚拟内存占用比例

KIS,大家都知道防御面很全面。但是内存占用却那么低?只因为它瞒天过海的把许多数据丢在这个虚拟内存。
内存和虚拟的存的比例几乎是 1:4。 (20mb内存, 83虚拟内存)
所以就出现了卡巴内存占用低,却卡U卡机的现象。

你正用着的杀软 内存和虚拟内存比例又怎样呢?来说一说吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1人气 +1 收起 理由
z13667152750 + 1

查看全部评分

猴纸
发表于 2011-4-12 22:25:00 | 显示全部楼层
除了虚拟内存,还有插入系统进程这招
tokthoo
 楼主| 发表于 2011-4-12 22:26:18 | 显示全部楼层
本帖最后由 tokthoo 于 2011-4-12 22:29 编辑
zhanjiangg 发表于 2011-4-12 22:25
除了虚拟内存,还有插入系统进程这招


对,某国内厂商很流行这招。
但是我想这招应该不会影响流畅度
qianyuqx
头像被屏蔽
发表于 2011-4-12 23:09:41 | 显示全部楼层
mse 1:3左右,但是并不卡机
z13667152750
发表于 2011-4-12 23:11:58 | 显示全部楼层
回复 3楼 tokthoo 的帖子

这招对直接统计总的PF值无效

其实那款软件造成的PF值上升也不小
tokthoo
 楼主| 发表于 2011-4-12 23:12:29 | 显示全部楼层
回复 4楼 qianyuqx 的帖子

我还没用过MSE呢。MSE监控灵敏吗?
tokthoo
 楼主| 发表于 2011-4-12 23:14:32 | 显示全部楼层
本帖最后由 tokthoo 于 2011-4-12 23:15 编辑

回复 5楼 z13667152750 的帖子

计算PF值只能看到那款杀软的总资源占用情况,而看不到造成卡机的原因啊 囧
z13667152750
发表于 2011-4-12 23:15:50 | 显示全部楼层
本帖最后由 z13667152750 于 2011-4-12 23:17 编辑

回复 6楼 tokthoo 的帖子

我觉得mse2.0真的有点卡exe
应该和mse独特的监控机制有关,对于mse来说,双击测试可能比右键扫描的成绩好
tokthoo
 楼主| 发表于 2011-4-12 23:18:59 | 显示全部楼层
回复 8楼 z13667152750 的帖子

呵呵,还没试过MSE呢。下载官方版好像有点点麻烦的感觉 囧。
我手上还有avast!6 和avira10的安装包。但是很懒惰试了  XD
langsileaa
发表于 2011-4-12 23:20:25 | 显示全部楼层
调用SetProcessWorkingSetSize 函数,暂时将应用程序占用的内存移至虚拟内存,当应用程
序被激活或者有操作请求时,再重新读回物理内存,只要调用SetProcessWorkingSetSize 合
理,是可以在资源占用和读写磁盘频率上找到一个平衡点的。这个平衡点也就是楼主所
认为的比例值。
事实上很多情况下,完全可以暂时释放掉物理内存占用。比如:窗口最小化。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-24 01:13 , Processed in 0.142587 second(s), 19 queries .

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

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