作者bravomao (資訊苦力)
看板java
標題Re: [問題] 想知道java heap預設大小
時間Wed Feb 8 23:31:44 2012
※ 引述《kuro44776 (羽嵐)》之銘言:
: 如題
: 最近在跑一個大型的程式
: 但是經常跑到一半就出現 outofmemoryerror : java heap space
: 經過爬文 原因似乎是因為jvm的記憶體用盡
: 所以我一口氣把他加到10G
: 目前程式還在執行中(希望別再出狀況的)
: 但是這一點也因此讓我很好奇
: 他預設的SIZE到底是多大啊???
: 他是會自行決定還是有一個預設值在?
: 因為找不到相關的資訊所以才來發問
: 希望可以從這邊知道答案 謝謝
HEAP的大小通常是希望由管理人員指定,但是在我看過的很多案例之中這塊的設定是個
三不管,也就是說系管的不懂他不會去設,開發也不見得會去指定大小,所以常常出問
題。而HEAP分為起始跟最大值,至於最適當的值那得要看您的平台跟JVM廠商。AIX的話
就要注意Native HEAP與Java HEAP的分配。
另一點值得注意的是SUN的JVM有Perm區塊,這塊的起始值很小,大約64M吧!小心不要
爆這邊~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.70.198
→ adrianshum:爆 PermGen 超麻煩, 正常來說不應該會爆, 會爆的通常找 02/09 11:10
→ adrianshum:不到問題所在 orz... 02/09 11:10
→ qrtt1:可以懷疑 script language 動態生成的 class 02/09 14:07
→ bravomao:是的,爆Perm通常是class的metadata太多,可以透過設定 02/10 11:48
→ bravomao:來增加Perm的空間,但是前提是你得要知道是Perm爆掉! 02/10 11:49