GC ( Garbage Collection )

Scavenge GC

New 領域が不足した場合に実行され、主に New 領域が対象です。比較的、頻繁に行われ、短い時間で処理が終わります。

Full GC

New 領域、Old 領域、Permanent 領域が不足した場合に実行されます。 

起動オプション

起動オプション 
各値の初期値は、各値の最大値と同じ大きさに設定すること 
-Xms=256M -Xmx=256M -XX:PermSize=128M -XX:MaxPermSize=128M 
-Xms ヒープ全体の初期値 
-Xmx ヒープ全体の最大値 
-XX:NewSize New 領域の初期値 
-XX:MaxNewSize New 領域の最大値 
-XX:PermSize Permanent 領域の初期値 
-XX:MaxPermSize Permanent 領域の最大値

プロセスIDを確認

# jps 
3011 Jps
3098 Bootstrap

現在の割り当てをみる

# jmap -heap [プロセスID]

ガーベージコレクションの統計情報を確認

上記のBootstrapのプロセスIDを基に以下で1秒おきに統計を取得
# jstat -gcutil [プロセスID] 1000

[[見方>http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gcutil_option]]
|&color(gray){列}|説明|
|S0|Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ) |
|S1|Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ) |
|E|Eden 領域の使用率 (現在の容量に対するパーセンテージ) |
|O|Old 領域の使用率 (現在の容量に対するパーセンテージ) |
|P|Permanent 領域の使用率 (現在の容量に対するパーセンテージ) |
|YGC|Young 世代の GC イベント数 |
|YGCT|Young 世代のガベージコレクション時間 |
|FGC|フル GC イベント数 |
|FGCT|フルガベージコレクション時間 |
|GCT|ガベージコレクション総時間 |

参考

[[@IT Javaパフォーマンスチューニング 第3回 Javaのヒープ・メモリ管理の仕組み >http://www.atmarkit.co.jp/fjava/rensai3/devedge03/devedge03_1.html]]
[[@IT:連載:J2EEパフォーマンスチューニング>http://www.atmarkit.co.jp/fjava/rensai/j2eeprfm04/j2eeprfm04_1.html]]
[[SUN jstat(Java 仮想マシン統計データ監視ツール)のマニュアル>http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gc_option]]
[[SUN jps(Java 仮想マシンプロセスステータスツール)のマニュアル>http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jps.html]]


[[Servletシステムのパフォーマンスチューニング>http://www.ingrid.org/java/jserv/performance/]]
[[事例に学ぶWebシステム開発のワンポイント(6)>http://www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html]]
[[事例に学ぶWebシステム開発のワンポイント(9)>http://www.atmarkit.co.jp/fjava/rensai2/webopt09/webopt09.html]]

とりあえず読んどけ

http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html

とりあえずメモ

最終更新:2010年09月14日 16:44