揭露:杀毒软件内存占用真相曝光

瑞星杀毒软件的资源占用有很大的隐蔽性(大部分软件都具有隐蔽性),如果只是从杀毒软件本身进程所占用的内存来判断,那它是一款资源占用很优秀的杀毒软件,4个进程总得占用内存还不超过25MB。但实际情况如何呢?


近日,得一正版瑞星杀毒2006,但没有把它安装到系统的想法,一直以来都觉得瑞星杀毒软件占用内存资源太多,造成电脑运行流畅度下降。尤其是对于只有128MB 内存的 2000系统、256MB内存的xp系统,影响更为明显,原本还有点流畅感觉的系统,安装了瑞星杀毒软件以后,就会变得不太流畅了。


在这里,笔者用自己的办公电脑对瑞星杀毒2006 进行简单的资源占用测试:


实验过程


首先,把系统重新ghost到刚安装的状态,重启电脑并空置5分钟,打开任务管理器可以看到内存占用在137MB左右,如图1。因为这是简单测试,笔者没理会内存占用是物理内存还是虚拟内存,只是粗略的估算一下内存资源占用的情况。





图1 未安装杀毒软件时的系统资源占用情况


然后安装瑞星杀毒2006,并升级到最新的病毒库。然后空置电脑30分钟,用资源管理器查看资源占用情况。





图2 安装并升级瑞星杀毒 2006





图3 安装瑞星杀毒软件后的资源占用情况


可以看到,安装瑞星杀毒软件以后,内存占用已经上升到了204MB左右,那可以初步估计由安装瑞星杀毒软件所增加的内存占用大概在65-70MB左右。但从图3可以看到瑞星杀毒2006的 4个进程(图中R开头的那几个进程) 总的内存占用还不超过15MB, 进程占用的内存资源与运行杀毒软件本身所占用的资源相去甚远,所以杀毒软件占用的资源并不能只是简单的从杀毒软件本身所运行的进程来判断,这是很多人老鸟也容易犯的错误。


如果内存比较大,把一些常用的功能模块调入内存,那监控扫描的速度就有所提高。瑞星是否内置有识别功能,根据内存大小来选择内存占用的情况,这暂时不得而知。 测试只是在本人的电脑进行简单的比较,没有很大的参考意义,如果你对瑞星杀毒2006占用资源的情况感兴趣,可以在自己的电脑上测试一下。


安装了一些软件以后,重新安装上卡巴斯基, 重启然后空置20分钟。





图4 安装卡巴斯基后的资源情况


可以看到安装卡巴斯基以后,内存占用上升到170MB 左右,从卡巴斯基进程(两个avp.exe),进程占用在11MB左右。


与瑞星杀毒软件2006比较,卡巴斯基内存占用优势明显。


最后谈谈一下看法,为什么杀毒软件的进程资源占用与软件运行而造成的资源占用有很大不同。这应该要涉及到svchost进程了。


以下网上收集的相关信息:“svchost它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?


原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。”


以上是本人的猜想,不正确之处,恳请指正。