查看: 3623|回复: 20
收起左侧

[讨论] 关于咖啡进程数目的讨论

[复制链接]
深红的雪
发表于 2007-12-28 14:27:12 | 显示全部楼层 |阅读模式
请注意,本文不是在讨论咖啡关了某些进程后和没有关任何进程时的区别,而是讨论程序在实现同样的功能下,使用多进程和单进程的区别。请各位好好理解上面的话的意思再发言。谢谢。



咖啡相对与其它杀软来说,进程的数目可以算是很多了,企业版达到6个,个人版有10多个。对于这么多
的进程,大家可能都吓怕了,这样会不会很卡啊??
于是顺理成章,就有了咖啡非常占用资源一说。
好了,对于咖啡占用资源的情况,我们暂且不讨论。
现在我们要讨论的是,到底进程数目的多少对系统速度有什么影响?有要减少进程的必要吗?



首先,我们先要搞清楚进程和线程这两个概念:
进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件
、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,
其中一个是主线程。

线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部
分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资
源。


对于进程,我们首先考虑单核的情况:
多个相互独立的程序在内存中同时存放, 相互穿插运行, 进程间还是串行的,但在分时技术下,通过时
间片的分配就达到了宏观上的并行的假象。也就是说,假设我们把一个进程代码不变地分成两个进程,
但实际上,这两个进程却不能同时被执行,所以单进程和两个进程的情况,所需的运行时间是一样的,
也就是执行速度不变。

但是,对于现在已成为主流的双核CPU来说呢?

由于时间片在分配时,充分利用到了CPU的多个核心,因此,在代码量相同的情况下,多进程比起单进程
具有更高的CPU利用率,以达到更快的执行速度。

不过,即使是单进程,但如果这个进程包含多个线程,而这些线程均非强占式地执行(并行)的话,效
率将比多进程的高。

另外,当一个进程的线程均处于挂起状态的时候,系统并不会为其分配多余的资源,从而保证资源的有
效利用。因此,咖啡的进程虽多,但处于活动的就那么两三个,其它的进程的资源占用完全可以忽略
但仍然占有着一定的地址空间,主要是内存)。
代码量相同的情况下,多进程的创建时间要比单进程的要长,这也是咖啡完全启动所需时间比一些杀软
要长的原因之一。(不是主要原因)

而多进程比单进程的一个重要好处就是,当其它一个进程出现问题而崩溃时,并不会影响到其它的进程
。从而保证了整个程序的稳定性。举一个例子:卡巴的程序执行时就是双进程的,一个是服务模块,一
个是GUI模块,进程是少了,但稳定性呢?一个进程内集成多个模块,其中一个模块出问题就可能导致整
个进程也坏掉。
早期用过卡巴的人都知道,5系列和6系列较早版本的卡巴都存在中断的问题,由于卡巴进程就那么两个
,而且都是重要的进程,崩掉一个问题就大了。
再观咖啡,虽然进程多,但每个进程的功能都是独立的,从而保证了程序的稳定性!

最后,简单总结一下:

1.咖啡的进程虽多,但这个跟运行速度是没有什么负面影响的。因此那些升级才用到的进程,完全不必去
关闭它。不就是多那么几个进程嘛和多占用几M的内存嘛,很碍事吗?

2.咖啡的进程多主要是为了稳定性而考虑的,其实咖啡完全可以把这些独立的进程设计为一个进程,那
么大家就不会抱怨说咖啡的进程多了,但这样做的结果是什么??希望大家可以理解咖啡的用意。

3.咖啡卡机、占资源一说,跟咖啡的进程数目是没有直接关系的,这点必须明确。至于到底卡不卡机,
占不占资源,这个是和咖啡的设置和扫描、监控机制决定的(事实上,觉得卡的人,更多的原因是出于
其它的问题,而不在咖啡),此问题不在本文讨论范围之内。

最后一句:本人水平有限,若有错误,大家指正。

[ 本帖最后由 rappar 于 2007-12-28 17:58 编辑 ]

评分

参与人数 1经验 +30 收起 理由
小邪邪 + 30 增进讨论

查看全部评分

billy_xx
发表于 2007-12-28 16:53:58 | 显示全部楼层
原帖由 rappar 于 2007-12-28 14:27 发表
1.咖啡的进程虽多,但这个跟运行速度是没有什么负面影响的。因此那些升级才用到的进程,完全不必去
关闭它。不就是多那么几个进程嘛和多占用几M的内存嘛,很碍事吗?


首先,进程的多少和运行速度是成反比关系的,怎么会像你说的没有什么负面影响,真要是这样的话也就不会有什么XP的进程优化的教程出来了。多占几个进程和多占几M内存你觉得问题不大吗?!程序设计中往往为是那1%的差距而努力。google和biadu这两个搜索引擎之间的差距是1个数量级的差距,G搜索一个信息如果只需0.1秒的话,那B就需要1秒,你还会觉得不大吗?


原帖由 rappar 于 2007-12-28 14:27 发表
2.咖啡的进程多主要是为了稳定性而考虑的,其实咖啡完全可以把这些独立的进程设计为一个进程,那
么大家就不会抱怨说咖啡的进程多了,但这样做的结果是什么?希望大家可以理解咖啡的用意。


咖啡并非是你设计的,所以它的设计思路和理念你也是不甚了解的,是否是因为追求稳定而设计成多个进程这点除了设计者外,其他人都没什么发言权,所以别把你自已的理解当作真理来传给大伙。

原帖由 rappar 于 2007-12-28 14:27 发表
3.咖啡卡机、占资源一说,跟咖啡的进程数目是没有直接关系的,这点必须明确。至于到底卡不卡机,
占不占资源,这个是和咖啡的设置和扫描、监控机制决定的(事实上,觉得卡的人,更多的原因是出于
其它的问题,而不在咖啡),此问题不在本文讨论范围之内。


咖啡卡机那是肯定的,而你所谓的事实是不成立的,同样一套系统,用红伞,NOD32这些明显就比咖啡来得快。可见更多的原因是出于咖啡,而不在其它方面
深红的雪
 楼主| 发表于 2007-12-28 17:21:02 | 显示全部楼层

回复 2楼 billy_xx 的帖子

终于有一个拍砖的

进程的多少和运行速度是成反比关系的

实为浅见!
只要程序要实现同样的操作的话(注意这个前提!),多进程或者整合成单个进程来完成,速度是没甚区别的。进程间宏观并行,微观串行,请你搞清楚,如果这些进程是真正的并发执行的的话,单进程的执行速度才有减慢之说!但这个速度也只是相对而言的,如果在多核平台上,实现同样的操作(再次注意这个前提),设计成并行的线程将更有效利用CPU资源(同时发挥两个核的处理能力,达到负荷平行),从而达到加速的目的。现在的新软件有什么不是针对多线程进行优化的??

程序设计中往往为是那1%的差距而努力/多占几个进程和多占几M内存你觉得问题不大吗?!

既然你也知道程序设计时,应当精简代码、优化内存占用、提高执行效率
你认为,百度和google的差距在于那服务器的几M内存,或者服务器上多跑几个进程?
它们之间的差距在于搜索引擎的技术上!你举此例实在没有参考价值!

咖啡并非是你设计的,所以它的设计思路和理念你也是不甚了解的,是否是因为追求稳定而设计成多个进程这点除了设计者外,其他人都没什么发言权,所以别把你自已的理解当作真理来传给大伙。

好吧,我承认,这只是我的见解。但如果你认为我的见解有什么不合理的,或者有更独到的见解,请提出

咖啡卡机那是肯定的,而你所谓的事实是不成立的,同样一套系统,用红伞,NOD32这些明显就比咖啡来得快。可见更多的原因是出于咖啡,而不在其它方面

如果你没有看清楚的话,我再说一次:
咖啡卡机、占资源一说,跟咖啡的进程数目是没有直接关系的,这点必须明确。
这个是和咖啡的设置和扫描、监控机制决定的,此问题不在本文讨论范围之内。

[ 本帖最后由 rappar 于 2007-12-28 17:34 编辑 ]
深红的雪
 楼主| 发表于 2007-12-28 17:42:42 | 显示全部楼层
还有就是,为什么XP要优化、减少启动项,关闭不必要服务??
那是因为,这些服务关一个就少一个功能,并会释放出资源出来。因为CPU要干的事少了,速度自然提高。

但注意,这个和本文所讨论的问题是完全两回事!请注意我的前提是实现同样的功能的情况下!
我的意思是,咖啡完全可以在设计时,把现在的多个进程都整合在一个进程里实现,如卡巴那样,升级模块不是独立的。但为什么咖啡没有那么做,而多进程较单进程的实现方式有什么区别,这个才是本文所讨论的
当然,如果你去关闭咖啡的一些服务,那实际上,就是属于CPU需要干的事少了的情况,速度是有提高的。但能提高多少?恐怕只是一个心理安慰罢了

[ 本帖最后由 rappar 于 2007-12-28 17:54 编辑 ]
gxd
发表于 2007-12-28 18:21:40 | 显示全部楼层
LZ的话说白了就是软件占不占用资源要看实际使用量
与进程个数这样的表征没有直接的关系
有的进程只有一个线程
有的进程有很多线程
在Windows和Solaris中
进程表现的更像一个容器
它代表线程接受分配到的资源
不能说10个瓶子就一定比2个瓶子装了更多的水
[:26:]

[ 本帖最后由 gxd 于 2007-12-28 18:35 编辑 ]
深红的雪
 楼主| 发表于 2007-12-28 18:40:48 | 显示全部楼层

回复 5楼 gxd 的帖子

基本上是这样的意思。
终于有人理解我了

我主要是因为看到很多人对咖啡的进程数目十分在意,才写此文的。
或者是我的表达能力不好............
gxd
发表于 2007-12-28 18:51:54 | 显示全部楼层

回复 6楼 rappar 的帖子

谁让你把操作系统知识搬出来吓人了
写那么长很多人都看不完俄
深红的雪
 楼主| 发表于 2007-12-28 19:03:39 | 显示全部楼层

回复 7楼 gxd 的帖子

我最初是以为如果不说得详细一点,大家是不会搞清楚的
貌似现在效果适得其反
90年代
发表于 2007-12-28 19:17:54 | 显示全部楼层
我砍掉进程是因为 平时用不到
handsomecat
发表于 2007-12-29 09:43:54 | 显示全部楼层
高手阿,虽然不是很明白,但受益匪浅
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-24 15:42 , Processed in 0.132984 second(s), 18 queries .

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

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