Webアプリを作成中なのですが過去にアプリ使用中に OutOfMemoryError: PermGen space が何回か発生しました。 作成が進むにつれて上記エラーが出なくなったのですが あるメソッド内で大量にDBコネクションとクローズが行われるのを 極力減らすように改良した頃から出なくなったように感じます。 コネクションとクローズを大量に繰り返す場合、 「クローズ処理は重いためクローズ処理でオブジェクトが解放される前に コネクションが行われそれが積み重なっていきメモリを圧迫することがある」 という話を聞いたことがあります。 ここで2点疑問に思ったのですが 1.コネクションとクローズを大量に繰り返すとメモリを圧迫することがある? 2.1.が本当だとして「OutOfMemoryError: PermGen space」がなぜ出るのか? PermGen space は調べると 「クラスがアプリにロードされるときにクラスとそのメタ情報が格納されるメモリ領域」 と出ていました。クラスがロードされるのはTomcatを起動したとき なのでアプリ使用中に上記エラーは出ないと思っています。 そもそもこの認識は正しいのでしょうか?
↧