OutOfMemoryErrorについて

Javaヒープ領域について
http://interstage.fujitsu.com/jp/technical/tips/tip000021_01.html
パフォーマンス・チューニング ガイド
http://h50146.www5.hp.com/products/software/development/java/tips/tune/p13.html
OutofMemoryのML記事
http://java-house.jp/ml/archive/j-h-b/026670.html
OutofMemoryの回避方法
・HashTable、ArrayListはメモリをくうので
ArrayListを返り値としてもつメソッドを
ArrayListをtoArrayしてString配列にして返すと
若干メモリ使用が少なくなる?
・System.gcを使う
(ただし、アプリケーション動作は遅くなる)
・メモリの使用量を見る
Runtime.getRuntime().freeMemory()
・変数宣言を行うとき、できるだけ少ない範囲で変数宣言をする
例えば、メソッド内の最初で宣言をすれば、メソッドが終了するまで変数は有効でメモリも確保しているが、
使用するのがメソッド内のfor文のみであればfor文で宣言したときfor文を抜ければ、自動的に解放される
・使っていないオブジェクトにnullを入れる(もしくは上記のように必要範囲内で変数宣言を行う)
・メソッドを細かく分ける(メソッド内にのみ変数が有効だから)
・eclipseのテストケースでエラーが出る場合は、
vm引数のところに値をいれてみる。
-Xms5m -Xmx128m
こんな感じ。
初期サイズ -Xms
最大サイズ -Xmx
http://interstage.fujitsu.com/jp/technical/tips/tip000021_01.html


その他

タイトルとURLをコピーしました