タグ

2008年5月10日のブックマーク (4件)

  • 「メモリーを意識してみよう」第4回 進化するメモリー管理:ITpro

    先々週にHotSpot VMでのメモリー管理について解説しました。ここでキーとなるのは世代別GCです。 HotSpot VMで世代別GCが採用される以前は,Old領域のGCで使用されるMark & Sweep GCだけでした。世代別GCが導入されたことにより,GCのパフォーマンスは劇的に向上したのです。 しかし,GCの進化はここで終わってしまったのではありません。Java SE 6(開発コード名Mustang)にいたるまで,様々な改良が加えられてきました。 今週はそれらの新しいGCの手法について解説していきます。その前に,まずは基となるMark & Sweep GCを説明しましょう。 Mark & Sweep GC Mark & Sweep GCは二つのフェーズでGCを行います。 はじめのフェーズで,使用しているインスタンスに印をつけます(Mark,図1a)。Markにはルートインスタン

    「メモリーを意識してみよう」第4回 進化するメモリー管理:ITpro
    masapon1967
    masapon1967 2008/05/10
    メモリーを意識してみよう - 第4回 進化するメモリー管理
  • 「メモリーを意識してみよう」第3回 ヒープのチューニング

    Java2Demoの起動が確認できたら,jconsoleを起動してみましょう。 先々週と同様に,jconsoleの「メモリ」タブで各領域の使用状況を参照できます。 左上のコンボボックスにはデフォルトで「ヒープメモリの使用状況」が選択されています。このコンボボックスを展開するとEden,Survivor,Tenuredなどが並んでいます(図1)。Perm Genなどの項目はヒープではない非ヒープ領域に属している領域です。 Survivor領域は実際には二つありますが,常にどちらかは空なので,一つにまとめて扱われているようです。 この中から,Eden領域を選択してみましょう。 Eden領域の使用量は,だいたい0から1MB程度の範囲に収まっています(図2)。 左下の詳細の部分を見ると,確定(MemoryUsageのcommitted)が1MB,最大が4MBであることがわかります。 つまり,Ede

    「メモリーを意識してみよう」第3回 ヒープのチューニング
    masapon1967
    masapon1967 2008/05/10
    メモリーを意識してみよう - 第3回 ヒープのチューニング
  • 「メモリーを意識してみよう」第2回 GCの仕組みを理解する

    皆さんは,ご自分で作成されたアプリケーションでどのくらいの頻度でガーベジ・コレクション(GC)が発生しているか認識されていますか。まずは,このGCの発生頻度から調べてみましょう。 GCの発生頻度を調べるにはjavaの起動オプションに-verboseを使用します。-verboseだけだとクラスローディングやネイティブライブラリの使用に関する情報も表示されてしまうので,GCだけに特化したいときには-verbose:gcとします。 先週も使用した,JDKのサンプルのJava2Demoでやってみましょう。 > java -verbose:gc -jar Java2Demo.jar [GC 512K->216K(1984K), 0.0089257 secs] [GC 726K->486K(1984K), 0.0281309 secs] [GC 997K->635K(1984K), 0.0097482

    「メモリーを意識してみよう」第2回 GCの仕組みを理解する
    masapon1967
    masapon1967 2008/05/10
    メモリーを意識してみよう - 第2回 GCの仕組みを理解する
  • 「メモリーを意識してみよう」第1回 ヒープがどのくらい使われているかを理解する

    Javaのメモリーはガーベジ・コレクタが管理するため,アプリケーション側ではそれほど気にするありません。しかし,全く気にしないわけにはいかないのも実情です。 小さいアプリケーションでは無頓着であっても構いませんが,大規模になればそうもいってはいられません。使用メモリー量,ガーベジ・コレクション(GC)の頻度,リークの有無などは,できればチェックしておきたい項目です。 Javaではメモリーを複数の領域に分割して管理しています。クラス定義やメソッドなどのデータが格納されるPermanent領域や,インスタンスが割り当てられるヒープなどがあります。このような領域がどのように使用されているかを知ることは,パフォーマンスを考えるうえでもとても重要になります。 ここでは,特にヒープに着目していきたいと思います。 ヒープの使用量を知る まずはヒープの使用量がどのくらいになっているかを調べてみましょう。

    「メモリーを意識してみよう」第1回 ヒープがどのくらい使われているかを理解する
    masapon1967
    masapon1967 2008/05/10
    メモリーを意識してみよう - 第1回 ヒープがどのくらい使われているかを理解する