2010-05-27 45 views
5

我正在使用chrome(我的mac的開發版)。延遲垃圾收集?

我正在查看我的頁面加載的時間線,並且看到由於加載頁面時發生了一些垃圾回收,導致延遲150ms。

loading times

這是黃線。

我很好奇,如果有任何方法可以阻止它,延遲它,無論如何我得到頁面加載更快?

+0

1 /如果您使用Chrome開發的任何語言標記了您的問題,它可以幫助人們回答您。2 /一般來說,垃圾收集已經儘可能晚地觸發,因此您只能自動提前觸發它,而不是延遲它(除非你願意增長堆)。 – 2010-05-27 21:59:54

+0

我相信它是用C++編寫的 – GeoffreyF67 2010-05-27 22:02:25

+0

加載頁面時GC是否總是被觸發?是哪個版本的Chrome? – Yuji 2010-05-28 15:56:10

回答

-3

不要創建這麼多垃圾:查看JavaScript程序在加載過程中分配內存的位置,並查看是否可以通過重用數據結構或延遲該工作來消除垃圾回收,直到頁面加載完畢。這可以讓你「延遲」垃圾收集。

+2

-1這不是一個有用的答案。在所有。 – 2010-05-28 16:24:27

3

針對某些評論的問題,這不是C++問題。

當v8(chrome中的JavaScript引擎)引擎檢測到它應該開始釋放代碼中不再需要的對象所使用的內存時,會發生垃圾收集。您可以訪問v8頁面以獲取有關垃圾收集器的更多信息。

可能有很多原因會導致您的代碼很早就被垃圾收集,在這種情況下,我們需要查看您的代碼。在頁面加載時是否有很多變量超出範圍?