当我检查chrome的pid时,我获得了多个pid,但是在firefox的情况下,我只得到单个进程ID。为什么chrome浏览器使用多个进程ID?
答案 0 :(得分:2)
Firefox和Chrome在内部运作方式上存在根本差异。正如你所说,Firefox有一个进程ID - 因为它是一个进程。但Chrome不是。
Chrome使用Multi-Process Architecture。这会将每个网站(选项卡等)彼此隔离,以便在发生故障时它们不会相互影响,或核心chrome进程。所以,如果在Firefox上你有一个页面死了,它可能会导致firefox作为一个整体放弃和崩溃。但是,在chrome上,更有可能只有特定的选项卡会崩溃,其余的选项卡和程序将作为一个整体打开并运行。
请注意,这种架构更难实现,需要更多内存。然而,它更加稳定。
其他阅读材料:
http://en.wikipedia.org/wiki/Process_isolation#Web_browsers
http://www.chromium.org/developers/design-documents/process-models
答案 1 :(得分:1)
我对此并不是百分之百确定,但从逻辑上看这是我提出的最合理的答案: 计算机资源的流程非常紧张。谷歌可能已经选择将工作划分为流程而不是线程,就像Firefox最有可能做的那样。这只是Mozilla和Google的实施考虑因素。 请参阅:http://www.differencebetween.net/miscellaneous/difference-between-thread-and-process/
编辑: 如果您想要更全面的解释,我建议您查看两个程序的文档: http://www.chromium.org/Home https://developer.mozilla.org/en-US/docs/Web
同时查看此论坛讨论:http://forums.mozillazine.org/viewtopic.php?p=702985