4
A
回答
3
隨着每次部署,新的類對象被放置到PermGen中,從而佔用不斷增加的空間。無論您創建PermGen空間的規模有多大,在部署完成後都不可避免地被淘汰出局。您需要做的是採取措施沖洗PermGen,以便您可以穩定其大小。有兩個JVM標誌可以處理這種清理:
-XX:+CMSPermGenSweepingEnabled
此設置包含垃圾收集運行中的PermGen。 默認情況下,PermGen空間從不包含在垃圾回收中(因此無限制地增長)。
-XX:+CMSClassUnloadingEnabled
這個選項告訴PermGen的垃圾收集清掃採取類對象的動作。默認情況下,即使在garabage集合期間訪問PermGen空間時,類對象也會獲得豁免。
0
我相信理論上如果一個類加載器是垃圾收集的,那個類加載器加載的類可以被垃圾回收。這些課程將在永久的一代。
相關問題
- 1. Java PERM代在哪裏?
- 2. PS Perm Gen && Perm Gen JVM PROPERTIES?
- 3. Java和堆棧區域的方法區
- 4. Java繼承文本區域
- 5. Java和Windows區域設置
- 6. Java用戶控制區域
- 7. Java Applet區域設置
- 8. JRuby JMX Perm Gen Value
- 9. Java圖片顏色區域區別
- 10. 連接區域的區域
- 11. 區域內的區域
- 12. Java DecimalFormatter - 區域設置DE和區域設置US
- 13. java區域設置getDisplayLanguage缺少一些區域設置
- 14. 在Java地理區域和距離內檢查地理區域
- 15. 區域讀取Java中的ActionListener
- 16. 的Java遊戲區域難度
- 17. Java的正則表達式區域
- 18. 更新文本區域擺動的Java
- 19. Java:創建有洞的裁剪區域?
- 20. 在Java中填充單擊的區域
- 21. Java中的可撤消文本區域
- 22. Java中多邊形的計算區域
- 23. 的Java重繪多個區域
- 24. Java:如何檢查當前的Perm/PermGen大小?
- 25. 內存不足:Perm Gen Space
- 26. PRISM:區域內的嵌套區域
- 27. MVC 3呈現區域中的區域
- 28. 獲取與區域接壤的區域
- 29. Backbone.Marionette佈局:區域內的區域
- 30. 將Java ClassLoaders添加到堆而不是perm gen
重複的http://stackoverflow.com/questions/3796427/in-java-does-permamnent-generation-space-garbage-collected – CoolBeans 2011-03-22 04:24:35
好問題 - 我會假設這些對象可以收集時,他們的父類加載器可以被丟棄,但不會發布爲'答案',因爲我猜測了一下。 – 2011-03-22 04:25:21
@Steve B - 它與堆上的其他元素相同。所以它最終會被垃圾收集。 – CoolBeans 2011-03-22 04:26:36