タグ

2011年2月13日のブックマーク (8件)

  • メモリリークトラブルシューティング記 – その4: リーク箇所を確認する色々な方法 – yusuke.blog

    – その1: 自宅サーバがハング – その2: フリーズの原因はガベージコレクション – その3: 侍でヒープ使用量を確認 – その4: リーク箇所を確認する色々な方法 前回のエントリではOld 領域にオブジェクトが溢れていることを突きとめた経緯を書きました。 次は、ヒープ領域にどんなオブジェクトが溜まっているのか確認する必要があります。 リークしているオブジェクトを検出する方法はいくつかあり、それぞれ以下のような特徴があります。 1. プロファイラ リーク検出を行う上で一番有名な方法。 JVM に特殊なフックをかけ、オブジェクトの生成、GC 等の挙動を監視します。 アプリケーションを動作させながら増加してくオブジェクトだけを抽出したり、オブジェクト生成に至るスタックトレースを確認したりと様々な視点で VM を調査できるのが特徴です。 一般的にプロファイラを使うと VM のパフォーマンスが

    メモリリークトラブルシューティング記 – その4: リーク箇所を確認する色々な方法 – yusuke.blog
  • no.41 Java Performance Tuning Newsletter

    先月の特集記事 the Commando Pattern はエイプリルフールでした。 コードはちゃんと記事の通り動きますが、これは良い習慣とはいえないのでパターンではありません。 当に実践してしまった奇特な方 もいるようですが、現実のプロジェクトで頻繁に使われるようなものではないので、アンチパターンでさえありません。 ジョークに気づいた方はご明察。気づかなかった方々にはお詫びを申し上げます。 しかし今回のジョークは気に入っています。 すくなくともみなさんは良い会社にお勤めのようで、このパターンの記事に関して、おそらくこのサイトにあるどの文章よりもたくさんのご意見をいただきました。 しかもこれがジョークだと気づいた方と気づかなかった方はほぼ半々でした。 少なくとも結果はそう読めましたが、もちろん読者のみなさんからもう少し控えめなエイプリルフールのお返しをいただいている可能性はありますね……

  • 「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat

    アプリケーションのパフォーマンス・チューニングなどで使用するツールといえば,まず第一にあげられるのがプロファイラです。最近は,EclipseのTPTPや,NetBeans Profilerなどフリーで使えるプロファイラが増えてきたので,使ってみたことがある方も増えてきていると思います。 意外に知られていないのですが,Java SEにも標準でプロファイラが付属しています。それがhprofです。 Java 2 SE 5.0からは「-agentlib:hprof」という起動オプションでhprofを起動できます(J2SE 1.4.までは「-Xrunhprof」)。使い方はヘルプ・オプションで表示できます。 C:\temp>java -agentlib:hprof=help HPROF: Heap and CPU Profiling Agent (JVMTI Demonstration Code)

    「Java SE 6完全攻略」第5回 プロファイラ hprofとよき相棒 jhat
  • Acroquest

    以下に、プロファイリング対象となるjavaサンプルプログラムとそのプロファイリング結果を示します。 プロファイル結果は適宜省略して記述します。また、文中、赤太文字で記述されている部分は説明のための補足であり、実際のファイルには出力されません。 → サンプルプログラム プロファイリング結果(sites指定): JAVA PROFILE 1.0.1, created Mon Jul 14 08:35:46 2003 Header for -Xhprof ASCII Output Copyright 1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved. (略) -------- THREAD START (obj=a3fb78, id

  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
  • Javaパフォーマンス・チューニング 第6回:メモリ・リーク解析とHotSpot JVM | HPE 日本(日本ヒューレット・パッカード株式会社)

  • ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法

    Java の GC について簡単に説明いたします。 GC はヒープやヒープサイズと密接な関連があります。以下のページも合わせて参照ください。 「Java のヒープサイズ」についての簡単な説明 Java プログラムが動作するとオブジェクトはメモリ上にロードされます。 大きなオブジェクトを使用したり、また、使用するオブジェクトの数が多ければ、その分メモリの使用領域は増加します。 そのまま、新しいオブジェクトをロードし続けると、Java が使用できるメモリ領域がメモリが一杯になります。 * 「 Java が使用できるメモリ領域 」、これをヒープ領域と言います。( ヒープ領域以外にも Permanent 領域が存在します。) メモリが一杯になると新しいオブジェクトをロードできず、プログラムを実行することができなくなります。 このような状態を回避するための仕組みが ガーベジ・コレクショ

  • Java SE 6 じゃじゃ馬ならし 管理用ツール

    管理に使える便利なツール はじめに J2SE 5.0 には管理用やデバッグで使える jmap などのツールが付属していました。ところが、これらのツールは Windows では使えなかったのです。 それがやっと Java SE 6 で、Windows でも使えるようになったのです。そこで、あらためてここで紹介しましょう。取りあげるのは jinfo jmap jstack の 3 つのツールです。 また、もう 1 つ便利なツールが加わりました。それが jhat です。これもいっしょに紹介します。 jinfo jmapJava VM の構成情報を参照、設定するためのツールです。 とりあえず試してみましょう。題材は OutOfMemoryError のハンドリングで使用した OutOfMemorySample です。 jinfo の引数は引数はターゲットとなる Java VM の PID で