情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

JavaのOutOfMemoryErrorについて このエントリーを含むはてなブックマーク

メモリ不足によるJavaのエラーとその対策方法についてメモしておきます。

OutOfMemoryError

java.lang.OutOfMemoryErrorが発生するときの状況について。

私の場合は、Javaを実行してからだんだんと使用メモリが増加し、GCを繰り返しても増加し続け、

java.lang.OutOfMemoryError: Java heap space
というエラーが表示されました。これは、JVMが確保するヒープサイズの最大値を使用メモリが超えたためです。

-Xmxオプションによる対策

手っ取り早い対策として、-Xmxオプションを利用する方法があります。たとえば、JVMのヒープサイズの最大値を1024MBにするためには、JVMの起動時(javaコマンド実行時)に、

-Xmx1024m
というオプションを追加すればOKです。

eclipseを利用している場合は、Debug ConfigurationまたはRun ConfigurationArgumentタブの「VM arguments」に「-Xmx1024m」を追加すればOKです。

おまけ1 manページ

javaコマンドのmanページ中の-Xmxオプションの項を掲載しておきます。

-Xmxn
Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate kilobytes, or m or M to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics
 Examples:
    -Xmx83886080
    -Xmx81920k
    -Xmx80m

おまけ2 設定が大きすぎると

最大ヒープサイズを大きくしすぎると次のようなエラーが出ました、というメモ。

  • Error occurred during initialization of VM. Could not reserve enough space for object heap.
  • Could not create the Java virtual machine.
  • Error occurred during initialization of VM. Could not reserve enough space for object heap

おまけ3 Javaのヒープメモリ管理の仕組み

ちょっと古いんですが、関連記事です。→ @IT 「第3回 Javaのヒープ・メモリ管理の仕組み(2005/4/2)」

Java並行処理プログラミング
Google App Engine for Java [実践]クラウドシステム構築
Effective Java 第2版

Java | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。