MS宣称IE8增强了很多稳定性方面的改进,今天我抽了点时间,对这个问题进行了一个分析。
从Windows 2000开始,Windows提供了一种新的机制对多个进程进行统一的管理。这种机制被命名为Job(作业)。作业的一个最大特点是能够对一个进程组进行统一的管理。
对比之前IE版本的多标签页实现,之前版本的每个Tab页是基于线程的方式进行的,这种方式最大的问题是一旦某一个线程发生问题,整个IE进程都会出现问题。而且这种问题是很难彻底解决的。在IE8里面,MS终于把Job(作业)的思想进行了一次比较大规模的运用,每一个(或几个)Tab页会对应一个进程,然后有一个总的进程进行管理(如下图)
这种设计的好处就是一个Tab崩溃以后,只会影响这个Tab,对于其他的Tab是不影响的。同时,最外面的框架进程能够知道子Tab的情况,也就能够很好的实现“灾难恢复”了。
下面是父框架进程和子进程的启动参数的不同,可以看到,Job里面的进程是通过一些特殊的参数进行启动的。
当然,IE8的这种结构也带来了一些问题:
- 从开发的角度上看,带来的最大问题就是进程间的通信和管理问题,不过我相信,这一点对于恐龙级别的MS来说是小菜一碟了。
- 从用户的角度上来看,进程对资源的消耗还是很大的。换句话说,同样的浏览模式,IE8对内存资源的消耗应该会大于IE7或者更早的版本。换来的好处是更加的稳定。
IE8,Good!
Smallfrogs
http://www.KZTechs.com