java.lang.OutOfMemoryError: PermGen spaceの対処法について
java.lang.OutOfMemoryError: PermGen spaceとは
こんにちは、先日Javaで"java.lang.OutOfMemoryError: PermGen space"と言うエラーが発生しましたので、原因と対処法について書いていこうと思います。
・PermGen spaceが発生する原因
まず"PermGen space"とはなに?という話ですが、
Javaのメモリ領域にPermanent領域というものがありまして、
これはロードされたクラスやメソッドの情報を保持する領域になっています。
この領域がオーバーしてしまうと、フルGCが行われレスポンスが非常に遅くなってしまいます。
・PermGen spaceの対処法
1.クラス数を減らす。
2.Permanent領域の割り当てメモリを拡張する。
1.はどうしても無理なことが多いので論外として、
2.のやり方ですが、
Javaのオプションで設定可能です。
-XX:PermSize:Permanent領域の初期値
-XX:MaxPermSize:Permanent領域の最大値
例) -XX:PermSize=256m -XX:MaxPermSize=256m
上記のように設定します。
これで、システムに合わせて拡張してやればOKです。
以上