环境:windows2008R2 x64 , Ie9 , sIEve.
背景:客户端页面刷新内存一直涨。有严重内存泄露。
设置 sIEve的IE兼容版本: http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx , AppName写 sIeve的可执行文件名。
追踪了两天两夜。网上的方法,试了个遍,用 sIEve 都测试有很多泄露,第一个 27 个, 第二次 2387 个,以后以 2360 个递增, 2360 是所有元素都泄露,包括 script,meta,body,html,div,span,input,img.....
把引用的js逐个去除,直到没有Js,还是发现所有元素都泄露。 没有Js啊。
检查了一下Html,把所有Html标签逐个去除。发现罪魁获首是如下标签:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
这一句,网上的解释: 如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。 见: http://www.oschina.net/question/54100_17414 ,Google要挖墙角,MS让客户浏览器全部元素内存泄露,即使没有Js !
用 sIEve 查看,没有泄露, IE再测试,内存也可以降下来了。
希望可以给正在为 页面内存泄露,并且用了上述 meta 的朋友一点有用信息。