JAVA環境中內存問題記錄

-Xmx1g   -> JVM最大允許分配的堆內存,按需分配
運行結果:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at geym.jvm.ch8.oom.SimpleHeapOOM.main(SimpleHeapOOM.java:14)

原因:
佔用大量堆空間,直接溢出
解決方法:
增大堆空間,及時釋放內存



-XX:MaxPermSize -> JVM永久帶的最大內存,按需分配,允許class回收
運行結果:
Caused by: java.lang.OutOfMemoryError: PermGen space
原因:生成大量的類,Class不能回收
解決方法:
增大Perm區,允許Class回收



-Xss1m  -> 線程棧大小
運行結果:
Exception in thread "main" java.lang.OutOfMemoryError:
unable to create new native thread
原因:
這裏的棧溢出指,在創建線程的時候,需要爲線程分配棧空間,這個棧空間是向操作系統請求的,如果操作系統無法給出足夠的空間,就會拋出OOM
解決方法:
減少堆內存,減少線程棧大小

-XX:ReservedCodeCacheSize -> 編譯器的代碼緩存大小

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章