2012-08-26 10 views

答えて

166

Samplingは、多くのスレッドダンプを取ってスタックトレースを分析することを意味します。 これは通常より速く、バイトコードの実行時の変更(ブレークする可能性があります)を必要としませんが、精度は低くなります。

Profilingを意味するinstrumentingあなたのクラスとメソッドは、実行されるたびに「レポート」します。ダンプが行われたときに捕捉されたメソッドだけでなく、計測されたメソッドが呼び出されるたびにカウントされるので、これはより正確です。ただし、インストルメンテーションとは、クラスのバイトコードが変更されたことを意味し、これによりプログラムが壊れる可能性があります。実際には、そのため、大規模なアプリケーションサーバー(JBossやWebLogicなど)でプロファイリングを使用すると、すべてが死ぬかハングアップすることがあります。

+2

プロファイリングはサンプリングより正確ですが、それ以上のリソースが必要ですか? – Parag

+0

はい、私は答えを更新しました。 – npe

+6

悪い実行方法を特定するたびに、サンプリングが十分正確であることがわかりました。私は個人的にプロファイリングを使用しません。 – Marquez

関連する問題