ie的启动和退出

测试环境:win7 64bit + ie11

至于旧的系统及ie,比如win2000、win xp、ie5、ie6等不在此说明,估计ie6之前的版本都不存在本文中说的情况,至于ie7不太肯定,估计从ie8开始和此文中测试情况相一致,但只是猜测

测试背景:

在上一篇文章中,说明了activex在ie中的退出问题,由此觉得ie这个情况是一个问题,所以又进行了简单的测试


上一篇文章中的测试是自己写的一个控件测试页面,本文中拿任意一个网址来测试。

在测试前,请在任务管理器中显示进程号,即PID一栏。

启动ie,打开 www.baidu.com,随便输入什么东西搜索,按如下步骤测试:

1. 点击任意一个搜索结果打开一个页面,注意观察任务管理器中有关iexplore.exe的进程,它会由原来的2个增加到3个。

2. 关闭这个打开的页面,任务管理器中的iexplore.exe进程数量并没有减少

3. 在几秒钟内再点击另外一个搜索结果打开一新的页面,则任务管理器的iexplore.exe进程数量没有增加。

4. 关闭新打开的这个页面,观察任务管理器,大约几十秒后新页面的进程才消失


打开 www.csdn.net,重复以上的测试步骤,测试结果也完全一样。

在打开一个页面时,交替打开百度、csdn两个页面上的链接来测试,测试结果也一样。

一个基本的结论:当关闭一个页面时,系统会保留这个进程,用于等待一个新的页面来使用它。个人认为,这样做的原因是,创建进程的开销较大,所以通过这种方式,以减少创建进程的机率,从而提高整体效率。


下面进行另外的一个测试,这个测试简单。

启动ie,然后随便打开一个网址,观察任务管理器中,会有两个iexplore.exe进程,其中一个带有 *32,一个不带 *32,然后关闭这个页面,则整个ie页面关闭,观察任务管理器,两个iexploer.exe进程都会很快消失。此测试说明,当所有的页面都关闭的情况下,则整个ie进程会被立即终止掉。

个人认为,当所有的页面都关闭时,也就表明不再使用ie了,也就没有必要再继续保留这个进程号,所以就可以尽快地退出。


测试过程中,观察任务管理器中的iexplore.exe进程,会发现一个不带 *32,其它的都带有 *32 的标志,带有 *32 标志的个数,实际上是ie页面进程的个数,当所有的页面被关闭,则所有的iexplore.exe进程都会快速地关闭掉。如果打开了4个页面,则会有5个iexplore.exe进程。所以不带 *32 标记的进程,应该是整个ie进程的管理进程,用于对其它ie进程的创建、退出进行管理。


从此测试中可以看出,控件的加载和退出还是很有讲究的,不是说页面关闭了控件就会完全退出,既然是这样的策略,那控件的加载和卸载也同样需要配以相应的策略来适应这种改进。


猜你喜欢

转载自blog.csdn.net/jszj/article/details/54409841