问题分析:
IE8浏览器32位版窗口闪烁问题经过查询IE相关资料及汇总分析问题电脑,发现单个IE进程内存占用量超过1200M后就会不稳定,会因为某个标签页窗口的崩溃引发进程内的其他窗口不稳定或崩溃,会出现窗口内闪烁、左下角报脚本加载错误致使页面停止加载,(页面会一直显示正在加载)、页面崩溃等现象。通过统计发现发生IE窗口闪烁的都是在超过1200M内存的IE进程中,如果同时再新开一个IE进程打开相同的页面,在新的IE进程中这个页面就显示正常,不存在闪烁问题,这说明窗口闪烁是跟进程有关系。
方法/步骤:
IE8采用了松散耦合进程框架,英文原文是Loosely Coupled IE (LCIE),是一种基于作业(Job)的进程管理方式。首先确认IE8 32位版是否工作在单进程模式下(启动浏览器只打开1个IE窗口,打开任务管理器,如果只有1个iexplore.exe *32进程,就是工作在单进程模式下),如果是单进程模式就需按以下步骤手动启用IE8的多进程模式,只要能控制IE的子进程数量就可以将标签窗口分摊到各个子进程中,经过实践测试发现,内存分摊的最小单位是单个标签页的内存占用量,不会将一个标签窗口占用的内存再拆分到不同子进程中。所以如果遇到一个标签窗口就产生超过1200M内存占有量的极端情况,下面的方法也将无效。
方法一:直接修改注册表
1. 打开注册表编辑器
“开始菜单”à“运行”à输入regedità“确定”
2. 导航到左侧窗格中的HKEY_CURRENT_USER \ Software\ Microsoft \ Internet Explorer \ Main,然后右键单击并创建名为TabProcGrowth的新字符串值,并赋值为small。(small进程数量5个以内,medium进程数量9个以内,large进程数量16个以内)可以根据系统资源情况和实际需要选择赋值,微软官方默认值是medium。开启多进程模式(启动浏览器只打开一个窗口时在任务管理器里就可以看到2个iexplore.exe *32进程,随着窗口或者标签页的增加进程数量也会随之增加,进程的内存占用会被动态分配到各个子进程)可以最大限度避免单个进程内存占用量超过1200M,避免因为一个窗口的不稳定或崩溃而影响所有窗口。
3. 关闭浏览器所有窗口,重新启动浏览器。
方法二:通过组策略设置(会同时影像32位和64位版本)
1. 打开本地组策略编辑器
“开始菜单”è“运行”è输入gpedit.mscè“确定”
2. 导航到左侧窗口中的本地计算机策略à计算机配置à管理模板àWindows 组件àInternetExplorer
3. 右侧窗口将滚动条拉到最下面,倒数第二项设置选项卡进程增长
4. 双击设置选项卡进程增长打开设置窗口,默认是未配置,点击已启用,然后在下方选项窗口里“选项卡进程增长”下面的文本框里输入数值9(对应默认算法,5=低,9=中,16=高)。
参考资料:
1. https://blogs.msdn.microsoft.com/ie/2008/03/11/ie8-and-loosely-coupled-ie-lcie/
2. https://support.microsoft.com/zh-cn/help/2734435