回答編集履歴
1
文章の修正
answer
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
> メモリリークのようなことが起きているように思われます。
|
2
2
|
これは引数設定に問題があるのでしょうか?
|
3
3
|
|
4
|
-
右肩上がりにヒープ
|
4
|
+
右肩上がりにヒープ使用量が上がっているアプリケーションは、**プログラム中に解放漏れのオブジェクトがあることを疑うべき**です。
|
5
5
|
|
6
6
|
まずはヒープ使用量をツール(jconsole等)を使って確かめてください。
|
7
|
-
[OutOfMemoryError の調べ方](https://qiita.com/opengl-8080/items/64152ee9965441f7667b)という記事も参考になると思います。
|
7
|
+
[OutOfMemoryError の調べ方](https://qiita.com/opengl-8080/items/64152ee9965441f7667b)という記事もメモリリークの調査をする上で参考になると思います。
|
8
8
|
|
9
9
|
> VM引数で指定するメモリの目安
|
10
10
|
|
11
11
|
まずはメモリリークを直してください。
|
12
12
|
|
13
|
-
直した仮定で話を勧めますが、その場合の**ヒープ
|
13
|
+
直した仮定で話を勧めますが、その場合の**ヒープ使用量は同じ高さの波状**になるはずです。
|
14
14
|
その状態でアプリケーションにおいて一番メモリを使用する操作(容量の大きいオブジェクトを大量にインスタンス化するなどの処理が含まれる操作)を行ってください。
|
15
15
|
|
16
|
-
そ
|
16
|
+
その操作を行うことで`OutOfMemoryError`になるようであれば、問題が再発しなくなるまで割り当てるメモリを増やしてください。再発しなくなればそれが目安です。
|
17
|
-
増やしたことで`OutOfMemoryError`が発生しないのであれば、それが目安です。
|
18
17
|
|
19
|
-
ただ、大抵の場合は**デフォルトのヒープサイズで足りるはず**なので、事情がない限り
|
18
|
+
ただ、大抵の場合は**デフォルトのヒープサイズで足りるはず**なので、事情がない限り割り当てるメモリは変更しないのが妥当です。
|
20
19
|
|
21
|
-
また、
|
20
|
+
また、割り当てるメモリを変える前にメモリを無駄に多く消費している部分がプログラム中にないかを確認してください。あればその修正を行ってください。
|