タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

GCに関するumekoumedaのブックマーク (2)

  • 現場から学ぶWebアプリ開発のトラブルハック 第9回 JavaのGC頻度に惑わされた 犯人はお前だ! Finalizer!!

    JavaのGC頻度に惑わされた年末年始の苦いメモリ:現場から学ぶWebアプリ開発のトラブルハック(9)(3/3 ページ) 【第5話】犯人はお前だ! Finalizer!! 先ほどの4つのGCグラフを比較すると、明らかにFull GC(GCグラフ内の黒い縦線)の出方に違いがあることが分かった。 「Finalizerの仕業か!」 同僚の言葉に、私もうなずかざるを得なかった。 ■Finalizerとは何者か? さてここで、簡単にFinalizerについて説明しよう。Finalizerは、Javaオブジェクトのfinalizeメソッドを呼び出すスレッドだ。 通常、ルートセットからたどれなくなったオブジェクトは、GCの対象となる。このとき、finailizeメソッドが定義されていなければ、そのままJavaヒープ上からは削除される。しかし、finalizeメソッドが定義されていると、一度finaliz

    現場から学ぶWebアプリ開発のトラブルハック 第9回 JavaのGC頻度に惑わされた 犯人はお前だ! Finalizer!!
  • JavaのGCについてメモ - public static void main

    ガーベッジコレクション(以下GC)やメモリについて、あやふやのままにしていたところが多かったので、調べてみたことをメモしておきます。 メモリについて プログラムの使用するメモリは、レジスタ、スタック、ヒープなど用途によって分けられますが、高級言語になるにつれてこれらは隠蔽されています。 Javaの場合はスタックとヒープ領域の二つに分けられます。 スタック スタックはメソッド起動ごとにフレームを出し入れする線形のデータ構造です。このフレームの中にローカル変数や引数などのデータを持っています。 メソッドが終了するとフレームは破棄されるので、寿命が短いことが特徴です。 スタックはスレッドごとに割り当てられます。 ヒープ インスタンスなどを保持する領域です。GCによって、メモリの管理がなされます。 JVMで一つ割り当てられ、全てのスレッドから共有されます。 クラス構造などの静的なデータも保持されて

    JavaのGCについてメモ - public static void main
    umekoumeda
    umekoumeda 2008/02/12
    ガーベッジコレクションについての分かりやすい説明
  • 1