タグ

gcとedenに関するkiyo_hikoのブックマーク (3)

  • ページが見つかりません | 日本HP

    ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。

    kiyo_hiko
    kiyo_hiko 2013/08/14
    Lisp、SmalltalkやJavaの古い日のGCはメモリーが一枚岩でマーク&スイープで大規模なガーベジコレクションを行うので停止時間がながい HotSpot VMでは世代別GCを行う マイナーGCは数msですむらしい
  • 第8回 イレギュラーなヒープの動作を理解する | gihyo.jp

    Tenured領域を早く使ってしまうパターン 前回ご紹介したように、HotSpotのヒープでは、アプリケーションがオブジェクトを作成するとまずはじめにEden領域が割り当てられ、マイナーGCによってSuvivor領域、Tenured領域へと移動していく流れが一般的でした。 しかし、このパターンではないイレギュラーなパターンがいくつか存在します。 その1つが、「⁠オブジェクトが一般的なパターンに比べ、早くTenured領域に移動してしまう」というものです。 図1 Tenured領域を早く使ってしまう例 Tenured領域はメジャーGCの対象であり、メジャーGCはNew領域を対象とするマイナーGCに比べ、はるかに停止時間が長くなります。そのため、このようなパターンが頻繁に起こる場合は、メジャーGCの多発によってアプリケーションの停止時間が増加します。 図2 Tenured領域を早く使ってしまう

    第8回 イレギュラーなヒープの動作を理解する | gihyo.jp
    kiyo_hiko
    kiyo_hiko 2013/08/14
    Edenに入らないオブジェクトができた場合、それはいきなりTenuredに入る (SURVIVORは常にEdenより小さい、Edenに入らないからってOOMEで落とすよりは待ってでも実行続ける発想らしい) 短中期のオブジェクトが多い場合newを増やす
  • JavaVMのメモリ管理をマスターする

    Webシステムの安定動作には、メモリ使用量の適切な見積もりが不可欠。だがJavaVMでメモリがどのように管理されるかを理解しているだろうか? メモリに関する問題が発生すると、知識や技術資料の不足によって問題が長期化しがち。JavaVMでどのようにメモリが管理されているかを理解し、正確なメモリサイジングやメモリ関係のトラブルの早期解決へとつなげよう。 JavaVMのメモリ構造を理解しよう まず、JavaVMがどのようにメモリを使っているかを理解しておこう。JavaVMがプログラムを実行すると、Javaのプロセスによってメモリが使用される。Javaのプロセスでは、Javaヒープ、Permヒープ、Cヒープ、およびスレッドスタックという4つのメモリ領域を使用する。 Javaヒープはアプリケーションプログラムの各種オブジェクトを格納する領域であり、Classのnewで確保される。JavaヒープはNe

    JavaVMのメモリ管理をマスターする
    kiyo_hiko
    kiyo_hiko 2010/08/27
    HotSpotVMではJavaヒープ(-Xmx)(Eden/Survivor/Old)の外側にPermヒープ(XX:MaxPermSize)、Cヒープ、スレッドスタックがある Permヒープが払底してもFullGCが発生し得る
  • 1