Javaトラブルシューティング メールマガジン
バックナンバー一覧


ENdoSnipeはJavaシステムを診断し障害要因を「見える化」するツールです Javaシステムの障害解析を行い解決までを迅速にサポートします
日付一覧
2013/07/11 14:01:12
2013/03/05 13:06:59
2013/03/01 11:31:58
2013/01/15 17:14:19
2013/01/11 16:32:22
2012/09/05 18:00:55
2012/08/10 12:40:31
2011/09/07 14:49:09
2011/06/29 14:48:12
2011/04/13 13:28:19
2011/02/28 14:43:22
2011/01/28 09:38:37
2010/12/22 12:35:18
2010/12/20 10:04:03
2010/08/30 15:30:14
2010/06/23 14:34:27
2010/05/26 14:40:46
2010/05/21 18:23:37
2010/04/27 16:57:13
2010/04/16 16:47:00
2010/03/29 16:53:25
2010/02/19 13:38:46
2009/11/11 14:28:19
2009/08/31 17:08:53
2009/06/19 14:30:51
2009/06/02 16:28:54
2009/05/13 17:25:50
2009/03/17 14:06:50
2009/02/24 16:05:19
2009/01/23 14:50:12
2008/11/19 13:51:45
2008/10/23 11:12:25
2008/10/14 16:23:52
2008/08/29 17:47:43
2008/08/15 18:06:21
2008/07/29 11:05:15
2008/07/02 17:39:04
2008/06/20 16:04:33
2008/06/11 16:00:42

=> メルマガ登録ページ
2012/08/10 12:40:31
【 JTS 】 Vol.025 :64bit Javaでに変更すると、OutOfMemoryErrorが発生してしまいます。
【 JTS 】 Vol.025 :64bit Javaでに変更すると、OutOfMemoryErrorが発生してしまいます。
□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■
        〜全てのJava開発者に贈る〜                      2012/08/10
      Javaトラブルシューティング メールマガジン  Vol.025
      https://www.acroquest.co.jp/webworkshop/JTSMM/index.html
■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□

 こんにちは、Acroquestの江里口 温です。

 Javaに関わる様々なトラブルとその対応策を分かりやすく説明する、
 『Javaトラブルシューティング メールマガジン』の第25号です!

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 【1】 Javaトラブル事例
  32bit Javaで稼動していたアプリケーションを、64bit Javaで
  動かすように変更すると、OutOfMemoryErrorが発生してしまいます。
___________________________________

[問題]

 これまで、32bit Javaで稼動していたアプリケーションで、
 マシンの増強を行うことになりました。
 Javaも64bit版を利用することになったため、
 そのまま移行して動かしたところ、OutOfMemoryErrorが
 発生してしまいました。
 
 Java : Java SE 6.0 Update21

[解説]

 他の64bitアプリケーションと同様、Javaでも、
 64bitになると、メモリの使用量が増加します。

 Javaでは、boolean、intなどのプリミティブ型のサイズは、
 固定されているため変化はありませんが、
 参照情報のポインタサイズは、32bitから64bitになります。

 クラスやCollectionなどでオブジェクトの参照情報は大量に
 使用されるため、ある程度複雑なデータ構造を扱う
 プログラムでは、64bit化によって大幅にデータ量が増加します。

 今回の事象でも、元々ヒープを多めに使用するアプリケーションであった
 ことで、ヒープ使用量が増えた際にヒープ容量を超えてしまったと
 考えられます。

[対策]

 以下の対策が考えられます。

  (1) 最大ヒープ容量を増やす。
    単純ですが、メモリに余裕があれば、最大ヒープ容量を増やすことで
    対応できます。

  (2) 参照の圧縮を有効にする。

    メモリ使用量の増加を抑えるため、
    各Java VMで、ポインタのサイズを圧縮するオプションが
    提供されています。
 
    Oracle JVM(Hotspot)では、-XX:+UseCompressedOops、
    IBM JVMでは、-Xcompressedrefsを指定することで有効になります。(※)
    この場合にはサイズは64bitから32bitに圧縮されます。

     ※Oracle JVM(Hotspot)では、Java 6 Update23から、
      デフォルト値が変更され、UseCompressedOopsが有効に
      なった様です。

    Oracle JVM(JRockit)では、デフォルトで有効で、
    -XXcompressedRefsオプションにより、どのサイズまで圧縮するかが
    指定できます。

                        ◇ 2012年08月10日 ◇


 ご意見・ご感想は、jtsmm@acroquest.co.jp までお寄せください。



---------------------------------------------------------------------
※このメルマガは
 「★Acroquest★Javaトラブルシューティング メールマガジン」に
 ご登録頂いた方にお届けしております。

 本メールに関するお問合せは、「ご案内元」に記載している
 メールアドレスまでご返信をお願いいたします。
 また、情報配信の停止・削除につきましては「ご案内元」に記載している
 URLにてお手続きをお願いします。

 また、本メールマガジンに掲載されている内容の無断転載を禁じます。
---------------------------------------------------------------------


──────────────  ご案内元  ────────────

          Acroquest Technology株式会社
          〜心に響くSmile & Technology〜

           URL:http://www.acroquest.co.jp/
       
        TEL :045-476-3171 (9:30〜11:30, 12:30〜17:00)
               (土日祝日および弊社休業日を除く)

  メルマガに関するご感想・お問い合わせなど:
   jtsmm@acroquest.co.jp
  メルマガの配信停止、削除等:
   https://www.acroquest.co.jp/webworkshop/JTSMM/index.html

  個人情報開示に関するお問い合わせ  :
   privacy@acroquest.co.jp

──────────────────────────────────




メールマガジン登録ページ




AHREFロゴ
Copyright (C) 2007 ahref.org All Rights Reserved.