小谈Chrome

最近关于Google浏览器Chrome的报道铺天盖地,我也第一时间尝试了Chrome,我觉得其简洁的风格我非常喜欢。不过这只是第一个版本,稳定性和功能各方面还有待增强。但我发现了一个Google在这里的一点技术创新,那便是不同的标签页使用了不同的进程。

不搞编程的人可能不知道这里面的好处:

  • 多进程提高了整个应用的稳定性:倘若有一个标签页崩溃、假死了,并不会影响到其他的标签页。我在Firefox下经历过某个页面的假死导致必须强制关闭整个浏览器。
  • 多进程可以提高应用整体性能:现在计算机已经进入多核时代,只有能利用多个核心的优势才能进一步提高程序性能。一般而言,单进程的程序要通过线程来利用多核,但是线程之间由于共享同一片内存地址,编写代码容易出现问题(如锁的争用等等),不如传统的进程方式方便稳定。
  • 多进程可以节省内存资源:进程结束之后内存可以立刻释放,就更不容易出现内存泄露和内存碎片过多的问题
  • 多进程提高安全性:安全性部分我不了解,但是考虑到进程之间的隔离,我觉得安全性是可以更好地提高的。

过去IE也有多进程模式,但必须是重新执行IE的进程才行,对于从任何一个IE窗口中弹出的新窗口,实际上和原窗口还是同一个进程,而进入到了IE7之后,标签方式浏览必须使用同一个进程。而FF和Opera则一直都是单进程模式。Chrome完美结合了多进程方式和标签浏览,这一招确实非常高明。

虽然目前Chrome应用这一方式可能还存在一些问题,不过我认为方向是正确的。

《小谈Chrome》上有11条评论

  1. 可以通过命令行参数选择进程模式,用这个,比较省内存:
    --process-per-site
    也有单进程模式,不过丧失了多进程的优势

    安全方面Google实现了Sandbox功能,
    普通的渲染进程没有读写和通信权限,
    这样渲染引擎就算有Bug也无法被利用,
    而渲染引擎是浏览器最复杂的模块,最容易有Bug

  2. @never
    您更专业

    我看到还有--single-process的选项,可以仅使用一个进程,我没有试用过,但听说用了之后速度反而下降了。

  3. 如果我没有搞错的话,其实很多IE Shell已经用了多进程了~比如说世界之窗~

    其实我比较关注的是V8和TraceMonkey的性能还能怎么提升,囧。

  4. @Cloudidust

    世界之窗? TheWorld?
    没用用过所以不清楚,不过看他的介绍是这样的

    世界之窗浏览器2.0版是继IE浏览器7.0版之后,世界上第二款采用多线程窗口框架的浏览器,区别于其它采用单线程的多窗口浏览器,多线程框架可以大幅减少由于某个网页假死导致的整个浏览器假死情况,并且可以在一定程度上提高网页打开速度。

  5. 国产多进程浏览器出来了:糖果浏览器是一款“永不崩溃”的浏览器,全球首款多进程多线程架构浏览器,糖果浏览器3。0 将使用户彻底摆脱浏览器假死或真死(崩溃)的困扰。糖果浏览器3。0实现了以下目标:

    1 行云流水,操作流畅,决不出现鼠标失灵,停滞等现象;
    2 永不崩溃(除非操作系统崩溃或断电,参考 防假死防真死测试页);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.