環境: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 的朋友一點有用信息。