例外クラスまたはコードの行によって分類生成される例外の数を、プロファイリングする方法

アンドリュー・公園:

私はコードが数十秒当たりの例外の何千ものを生成していることを、オープンソースのサードパーティのライブラリ、および飛行記録番組の数を使用しています。

どのように私は、例外の種類がスローされているか追跡することができ、ソースコードにそれがスローされるのWHERE私は、サードパーティのコード自分自身を修正することができれば、私は見ることができますか?

Javaのミッションコントロールは、私の知る限り、例外タイプまたはソースのいずれかの内訳を示していません。

これは、オープンソースプロジェクトのためであるとして、高価な商用プロファイラをお勧めしないでください。

アレクセイRagozin:

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=13715&siteId=1