私はコードが数十秒当たりの例外の何千ものを生成していることを、オープンソースのサードパーティのライブラリ、および飛行記録番組の数を使用しています。
どのように私は、例外の種類がスローされているか追跡することができ、ソースコードにそれがスローされるのWHERE私は、サードパーティのコード自分自身を修正することができれば、私は見ることができますか?
Javaのミッションコントロールは、私の知る限り、例外タイプまたはソースのいずれかの内訳を示していません。
これは、オープンソースプロジェクトのためであるとして、高価な商用プロファイラをお勧めしないでください。
Javaのミッションコントロールは、私の知る限り、例外タイプまたはソースのいずれかの内訳を示していません。
正しくないことを、Javaのミッションコントロールは、その情報を提供します。
まず、フライトレコーダー(デフォルトでのみでjava.lang.Errorの子孫がトレースされている)で例外のトレースを有効にする必要があります。
下記のフライトレコーダーの設定のスクリーンショットを参照してください。
レコーダーたら、「例外」レポートに移動する必要があります。
あなたは、クラス別の例外の内訳が見つけるだろう。「スタックトレース」ビューには、正確なスタックトレースを取得できるようになります。
I少しJMCライブハック:「スタックトレース」ビューのコンテキストメニューを持参し、「フレームによってを区別する」を選択>「行番号」(上のスクリーンショットを参照)。つまり、行番号を見ることができるようになります。
あなたはCLIツールを好む場合を見てとるSJKを(免責事項、これは私自身のOSSプロファイラです)。例えば、以下のコマンドは、あなたJFRダンプからの例外のSVG炎のグラフを生成します。いくつかの他のレポートタイプもあります。
java -jar sjk.jar ssa -f dump.jfr --jfr-event THROW --flame > throw_flame.svg