2012-01-03 16 views
0

我有一個巨大的堆(大約100GB)的應用程序,並且在初始化過程中它將幾乎所有的可用內存分配給不同的緩存。問題在於,這個初始化階段分配了大量的對象,導致舊的令人痛苦的去碎片化。所以我的想法是強制完整的gc作爲初始化階段的最後一步,以便對齊/壓縮舊的代碼並降低運行時「併發模式故障」的概率。如何在sun/oracle jvm上強制執行完整的gc,在舊版本中執行內存對齊/壓縮

有什麼辦法強制這樣一個集合?

感謝

+0

'System.gc()'? – fge 2012-01-03 10:38:49

+0

那麼根據javadoc它不能保證gc會觸發。 – Tomek 2012-01-03 15:59:46

+0

我不認爲有什麼保證,但也許我錯了 – fge 2012-01-03 16:04:13

回答