2009-12-02 4 views
9

visualvmのサンプリング機能の背後にある科学者は誰でも説明できますか?ビジュアルVMのサンプリング

私は、それぞれの特定のメソッドに費やされたCPUの量を集めるには、アプリケーションのプロファイリングを行う必要があると思っていましたが、visualvmはどのような計測器を使っているのでしょうか?完了...

答えて

8

新しいVisualVM-Samplerプラグインは、監視されているアプリケーションをスレッドダンプまたはメモリヒストグラム用に定期的にポーリングすることによって、パフォーマンスとメモリデータを収集するようです。詳細についてはthis articleを確認してください。

+2

特にVisualVMについてはわかりませんが、何らかの理由で非常に具体的なメソッドについて正確なタイミングが必要な場合を除き、一般的にコールスタックのサンプリングは最も一般的なプロファイリング方法です。 –

-1

メモリプロファイリングを開始すると、JVisualVMはすべてのクラスをインストルメントするのに数秒かかります。少なくともそれはそれが言っていることです。確かに私に計装のように見えます

JVisualVM performing instrumentation

。 :)

+0

私はOPがCPUについて質問していると思っていました:) –

+4

プロファイリングプラグインは計測器ですが、サンプリングプラグインはありません。 – Eleco

11

タイマーがあります。 タイマーが起動すると、各スレッドのスタックの現在の内容がコピーされます。 次に、スタックフレームをメソッド名とオブジェクト名に変換し、相対メソッドに対してカウントを記録します。

このため、コードをインストルメントする必要がないため、非常に軽量です。 しかし、それはコードを計測しないので、短期間のものを欠場する可能性があります。 これは、長時間実行されるパフォーマンスの問題の追跡、またはコード内の深刻なホットスポットの特定に役立ちます。