2010-03-08 103 views
10

我們的團隊面對緩慢但嚴肅的Javascript 內存泄露。我們已經閱讀了Javascript中內存泄漏的正常原因(例如關閉和循環引用)。什麼是一些最好的Javascript內存檢測工具?

我們試圖避免代碼中的這些缺陷,但它可能仍然存在未知的錯誤。

我開始搜索可用工具,但希望從具有這些工具實際經驗的人員那裏獲得輸入。

一些我迄今發現的工具(但不知道如何很好的和有用的,他們將是我們的問題):

我們的搜索不限於免費工具,它將是一項獎勵,但更重要的是可以完成工作。

我們做我們的JavaScript代碼如下:

  • AJAX調用到.NET WCF後端即發回JSON數據
  • 操作DOM
  • 保持相當規模的對象模型Javascript存儲當前狀態

回答

1

另一種工具,您可以:JavaScript Memory Validator

顯示分配,對象,熱點,世代,快照等

通過3.6工程與Firefox 1.0。

+0

這個工具令人驚喜。也許是我們評估過的最好的。它的邊緣有點沒有光澤。碰撞了幾次,速度非常慢,但完成了這項工作,儘管使用起來有點令人沮喪。 – 2010-03-16 07:45:18

+0

你真的能夠使用這個工具嗎?我們嘗試使用它,但首先它會掃描系統(主知道它掃描的是什麼),並找到插件容器。那麼當你啓動應用程序時,沒有任何反應。 – 2013-03-13 04:48:22

1

我已經使用了JavaScript內存泄漏檢測器,我可以告訴你它工作的很好。

您使用的是什麼動態引擎?基於提到.Net網絡服務,我猜你正在使用ASP.Net。那是對的嗎?你可能想看看ASP.Net AJAX JavaScript庫。它的建立方式有助於這種情況。所有組件都有一個dispose()方法,允許您刪除對DOM對象的引用。當我切換到ASP.Net AJAX時,我的頁面變得更加快速響應。

+0

該工具看起來很有前途,但從未報告過任何內容;控件始終保持空白。想想這可能是因爲它不能在IE8上運行。我將在IE7上再次嘗試並回報。 感謝您使用AJAX Javascript庫的提示。我們的解決方案使用JQuery自定義Javascript組件,所以它不適用於我們。 – 2010-03-16 07:49:17

+0

是的。此工具適用於IE8之前的IE版本。這是因爲他們測試的內存泄漏問題已在IE8中修復。如果內存泄漏出現在IE8(或Firefox等)中,那麼我認爲這些工具都不能幫助你。他們測試在IE8之前導致IE版本泄漏的代碼。 – 2010-03-16 15:29:45

2

sIEve專門用於IE中的內存泄漏。我喜歡的是,您可以可靠地重現所使用的步驟並捕獲可執行的數據。請參閱以下內容:

How to use IE7 Javascript memory leak detectors?

+0

謝謝我們試了一下。不是一個壞的工具。它適用於IE7,但不適用於IE8。我們仍然無法弄清楚是什麼導致這個工具泄漏,可能是因爲我們沒有正確使用這個工具...... – 2010-03-16 07:41:58

相關問題