タグ

javaとGCに関するitachisoftのブックマーク (5)

  • 【FAQ】WAS 初期ヒープサイズの設定に関する注意事項

    WebSphere Application Server (WAS)の初期ヒープサイズの設定にご注意ください。初期ヒープサイズを最大ヒープサイズと同じ大きな値に設定した場合、GCおよびコンパクションの発生時に問題が起きる可能性があります。 この文書は以下のUSのTechNotes(FAQ)の翻訳になります。最新の情報については、オリジナルの英文をご参照ください。 "The initial Java heap size should not be set equal to the maximum Java heap size" (US) http://www-1.ibm.com/support/docview.wss?uid=swg21160795 【問題点】 Javaの初期ヒープサイズをとても大きな値に設定した場合、ガーベッジ・コレクション(gc)とヒープ・コンパクションが適切に行

  • JavaのGC頻度に惑わされた年末年始の苦いメモリ

    JavaのGC頻度に惑わされた年末年始の苦いメモリ:現場から学ぶWebアプリ開発のトラブルハック(9)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Java言語を利用するようになって、システムを開発するうえで楽になった要素は何かというアンケートがあったとき、読者の皆さんならどのように回答するだろうか。私は迷わず、「メモリ管理」と回答する。 同時に、Javaを利用してシステム開発を行う際に、注意していること、悩まされたことは何かとアンケートがあれば、「GC(ガベージ・コレクション)」と回答するだろう。 多くのシステム開発の現場では、いまこの瞬間も、JavaのGCの挙動に悩まされ、GC

    JavaのGC頻度に惑わされた年末年始の苦いメモリ
    itachisoft
    itachisoft 2011/07/13
    PrintClassHistogramは、Javaヒープ内に存在するインスタンスの個数と総サイズを、クラスごとの統計情報として出力するオプション / 犯人はお前だ! Finalizer!!【注意!】Finalizerが引き起こす3つのトラブル
  • @IT:事例に学ぶWebシステム開発のワンポイント(9)メモリは足りているのに“OutOfMemory”

    連載では、現場でのエンジニアの経験から得られた、アプリケーション・サーバをベースとしたWebシステム開発における注意点やヒントについて解説する。巷のドキュメントではなかなか得られない貴重なノウハウが散りばめられている。読者の問題解決や今後システムを開発する際の参考として大いに活用していただきたい。(編集局) 今回のワンポイント Javaアプリケーションを動作させていて、「OutOfMemoryが出た」「Java VMが落ちた」という問い合わせを受けることがある。この場合、たいていはアプリケーションの問題や、設定の問題であることが多い。稿では、HP-UX上でのJava VMを例に、OutOfMemoryが出る原因とその対処方法を紹介する。なお、稿に登場する用語は第6回「APサーバからの応答がなくなった-GCをチューニングしよう-」で解説しているので、参照してから読んでほしい。 Old領

    @IT:事例に学ぶWebシステム開発のワンポイント(9)メモリは足りているのに“OutOfMemory”
    itachisoft
    itachisoft 2011/07/13
    たどれるオブジェクトが多過ぎるため、フルGCを行ってもOld領域に全部入りきらない場合にOutOfMemoryが発生する。OptimizeitやJProbeのようなメモリデバッガを使用して解放されていないオブジェクトを発見し解放するように修正
  • Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT

    今回の概要 システムが応答しない、パフォーマンスが劣化したなどのトラブルが発生したときに、原因がなかなか掴めず、あたふたすることはないだろうか? 稿では、Java EEトラブルシューティングの現場で役立つ7つ道具を紹介する ある日、突然電話が鳴る 用件は、「システムが不定期に停止する。よく分からないけど、どうやらJava EE部分がおかしい」とのこと。このような事態が発生したとき、やみくもに原因を調べ、いつまでたっても問題が解決できず、原因の一片も発見できないことが多々ある。 トラブルが発生した場合、ツールが充実していない昔は、開発者の経験と勘に頼るところが非常に大きかった。Webシステムが普及するいま、昔とは比べ物にならないほど、システムの数が増え、開発者数が増える一方、システム障害を切り分けられる職人的なエンジニアの人数はシステム数に比例して増えているわけではない。そのため、すべての

    Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT
  • [実装編]メモリー管理を処理系任せにしてはいけない

    Javaや.NETを使うと,メモリー管理を意識しなくてもプログラミングできる。例えばJavaの場合は,Java VM(Virtual Machine)が備える「ガベージ・コレクタ」と呼ぶメモリー管理機能が,未使用のオブジェクトを破棄してメモリーを解放するといった処理を自動的に実行する(図1)。 図1●JavaVMによるメモリー管理の仕組み ヒープ領域は,生存期間の短いオブジェクトを格納する「New領域」と生存期間の長いオブジェクトを格納する「Old領域」で構成される。New領域はさらに,最初にオブジェクトを格納する領域「Eden」と,しばらく生存しているオブジェクトを格納する「世代0」「世代1」から成る。Edenに存在するオブジェクトは,生存期間が延びるにつれて,世代0または世代1に移動。世代0と世代1を何度か移動した後,最終的にOld領域に移される [画像のクリックで拡大表示] だが,処

    [実装編]メモリー管理を処理系任せにしてはいけない
  • 1