2016-09-23 3 views

答えて

10

プロファイラは、すべての時間を実行しているので、それはあなたの完全なコールスタックを提供します。任意の特定の時点で。

サンプラーは、異なる時点で「スナップショット」を取るだけです。

事実:すべての "プロファイル"を行うと、JVMの速度が大幅に低下します。数秒以内にという膨大なデータ量をと作成します。考えてみましょう:プロファイラはそれぞれと、メソッド呼び出しを書き留めます。

最初に、アプリケーション内で何が起こっているのかわからないときは、最初にサンプラを使用します。そして、あなたはサンプルがあなたに何かを伝えることを願っています。 「ちょっと、私たちの10000サンプル内で、私たちはその方法の大部分を占めています。どうしてですか?しかし、あなたが「狩り」していることをよりよく理解するとすぐに、いくつかのメソッドにつながるコールチェーン全体をキャプチャするために、完全なプロファイラを実行しようとします。

そして、いくつかの "中間地面"があります - ここでは "すべて"をプロファイルしますが、のものを除きます。言い換えれば、ほとんどのプロファイラではではなくのプロファイルメソッドがこのパッケージまたはそのパッケージに含まれています。しかし、もちろん、パッケージ/階層を除いては、あなたが調査しようとしている方向にかなり良い感覚を持っている場合にのみ意味があります。

+0

これは大きな説明です。 – Jason

関連する問題