2010-05-03 46 views
1

我正在試圖解決某些內存泄漏的受限設備(摩托羅拉機頂盒)上使用Mozilla v1.7.12。卸載樣式表時Mozilla中的內存泄露

當我動態加載引用一些大圖像的樣式表時,我可以看到消耗的內存量隨着圖像的大小而增加。這是我所期望的。

然後,當我從DOM中刪除樣式表時,我期望內存被釋放。但是,這不會發生。

這是一個問題,因爲我正在處理的Web應用程序需要能夠在頁面的生命週期中動態加載和卸載樣式表多次。

因此,我的問題是:我看到預期的行爲,或者它是一個已知的錯誤?有沒有辦法解決這個問題?

我應該指出,我已經在樣式表中的所有圖像上設置了expires標頭爲-1。

[更新]

如果我保持裝卸樣式表時,瀏覽器會消耗越來越多的內存。因此,似乎並非如此,瀏覽器重用相同的內存。

+0

當您繼續加載更多圖像時會發生什麼?這可能只是垃圾收集器尚未啓動。 – Amber 2010-05-03 08:44:29

+0

如果我繼續加載和卸載樣式表,瀏覽器會消耗更多內存。 – KaptajnKold 2010-05-03 08:56:39

回答

0

無論是否有缺陷都是非常主觀的問題。瀏覽器在需要時使用內存,並且最好在不再需要時放棄它。它可能永遠不會釋放內存,因爲保持它的重用比保持放棄和請求更有效。

總之,第二次猜測爲什麼或何時程序消耗和釋放內存往往是無望的努力(除非它是你的代碼當然)。

您是否曾嘗試一個接一個地加載多個樣式表?您可能會發現,即使瀏覽器尚未返回內存,它也會重新使用同一個池,因此總內存使用量實際上不會增長。

+0

感謝您的建議。不幸的是,我正在觀察的是,當我卸載並加載更多樣式表時,瀏覽器會消耗更多的內存。 – KaptajnKold 2010-05-03 08:58:50

+0

然後,另一種猜測是,瀏覽器一直保留CSS,直到頁面重新加載,從而創建一個新的DOM。 – 2010-05-03 09:01:24