javascript 記憶體泄露工具使用

來源:互聯網
上載者:User

javascript記憶體泄露的問題一直以來都不受到大家的重視,原因是對使用者的影響沒有太實際的表現,或許近幾年記憶體發展迅速。指令碼記憶體再泄露也不會有太大影響。

當然作為前端開發的同學們,就不能有這樣的僥倖心理。出現memory leaks很大程度上是因為程式的不成熟和編碼不太規範造成的。不過,這裡就不說如何出現問題的,對問題的出現有興趣可以參考以下地址:

  • Understanding and Solving Internet Explorer Leak Patterns
  • IE's memory-leak fix greatly exaggerated
  • Memory Leakage in Internet Explorer – revisited

     

    這裡主要說說,目前幾個檢查javascript記憶體泄露的工具使用方法:

    首先我們用到的工具有三個 Drip/sIEve ,Javascript Leaks Detector, leak monitor。其中前兩個是用於檢查ie的,leak monitor 是用來檢查firefox的情況的。這裡重點說一下ie下的這兩個工具,由於firefox的GC機制比ie強壯,只要ie的問題消除了,其他瀏覽器基本上不會有什麼問題。

     

    1.Drip/sIEve

    Drip和sIEve的作者應該是同一個人,連open souce上的項目都是在一起的。不過,平時我們主要使用sIEve就可以了,sIEve的功能比Drip強大一些

    sIEve 介面很簡單,左側:內嵌了一個瀏覽器控制項,我可以訪問任何網址,下方還有個記憶體檢查,這樣我們可以方便看出記憶體的升降情況以及dom使用數量曲線。

    右側面板,我們可以通過 Show in use 看到目前頁面使用的dom的情況,Show Leaks 可以看到記憶體泄露的dom。當然每次顯示泄露的情況必須是頁面重新整理後,看到上一個頁面的泄露情況。

    同時通過右側的資料顏色,我們可以看到記憶體的升降和具體的數量級

                

    •  

    不過sIEve的工作原理是對所有dom進行了一次hack,然後自己判斷那些dom沒有被釋放掉,但是具體的情況比較難分析出來。而且跟蹤有問題的dom需要一定技巧,對於大型的應用程式,跟蹤難度大。

     

    不過用來檢測小模組的記憶體使用量情況還是一個不錯的選擇,特別是大項目模組細分後,對每個模組的單獨測試還是比較不錯的

     

    謝謝懌飛同學提示的, Drip/sIEve:
    http://home.orange.nl/jsrosman/

     

    2. Javascript Leaks Detector

    這是來自微軟GPDE團隊的一個小工具,下面簡稱JLD

    官網: http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx

    安裝後,我們可以在ie瀏覽器的 查看->瀏覽器欄中找到

     

    JLD強大之處在於能夠類比IE6和IE7的GC情況,和真實的回收情況。這樣可以做一個比較。

     

    這裡通常能只能反應IE6和IE7的理想情況,我們需要選擇下面Actual Leaks來反映當前瀏覽器的真實情況。

     

    瀏覽器重新整理後,我們就可以看到上次頁面的結果了,綠色代表沒有發現記憶體泄露,紅色代表發現了記憶體泄露,藍色是當前載入完成的頁面,當然還有黑色,是指正在載入的網頁

    當我們展開一個有問題的頁面時,

    我們可以看到一個有問題分支Leaks.這裡列出了有問題的節點,同時還能幫我們列出出現問題的指令碼在什麼地方。

     

    這點非常方便我們定位出泄露的問題所在。不過要使用指令碼調試,我們必須要開啟ie的指令碼調試功能

    在ie選項的進階中,我們去掉這兩個勾即可

     

     

    3. Leak Monitor

     

    這是firefox上唯一一個檢查記憶體泄露的工具,不過這裡舜子不太推薦使用。因為firefox的記憶體GC機制比IE強悍,不必作為重點考慮對象。只要ie的問題能處理好,firefox上基本上也沒有什麼問題。而且有ie這兩個強悍的軟體幫忙基本上能解決大部分問題了。

     

    可惜這個工具的體驗很糟糕,會讓人很有一種抓狂的感覺。如果您還要繼續嘗試可以到這裡下載: https://addons.mozilla.org/zh-CN/firefox/addon/2490

     

    PS:原貼地址不明

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.