Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

エラーの原因が分かりません

画像表示ソフトをGUIで作成しているのですが,
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
というエラーが出て実行されません.

どうしたらこのようなエラーを解消できるでしょうか?

3

回答

6916

閲覧

3件の回答

評価

0

エラーの原因がわかりませんて…
どういった処理しているのかもわからないので
なんともいえませんが…
何のエラーかわかってますか?
OutOfMemoryErrorってのが何かはわかりますか?
ヒープメモリがパンクしちゃってるわけです。
原因としてあげられるのが
・JVMのヒープメモリに割り当てる容量がすくない。(1度の処理で大量のメモリを消費するとき。※大量のオブジェクトを使用するときなど)
・メモリリークが発生している。※本来はGCが走るはずが開放していないために増え続ける。(どこかで参照しっぱなしなどで。必要ないものはしっかり後処理しましょう。)
が大半の主な原因です。バージョン6からは上記エラーをスタックトレースできるみたいなので6使用してるならそれで調べてみましょう。

どちらにしても通常は処理がマズいから発生するわけで
発生しないようなロジックで組むべき。

評価

0

ちなみに言っておきますが単にVMのメモリ割り当て増やしてもメモリリークが発生していたらいずれ同じ現象が発生するからね。

どの規模のアプリなのかはわからないが
試験実施時には連続試験などで大抵検出されて
改修させられる羽目になるので
初期実装時に発生し得ないように実装すべきである。

※大規模なアプリになればなるほど解析作業に
膨大な時間が費やされることになるので。

余談ですが、こういった部分は本当にJavaのデメリットであると思う。Javaの技術者に対してのね。特にJavaから言語覚えた人は。
私の周りにもJavaしか出来ない人が多くいるが
メモリの意識が低すぎる。JVMが勝手に何でもやってくれるとおもっている。

評価

0

>>あああ さん
おっしゃったようにプログラムを組み直したらちゃんと動くようになりました.丁寧で親切な回答どうもありがとうございました.

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。