プログラマの日記

Javaプログラマの苦悩の日々

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です。

 

以上