プロファイリングの概要
プロファイリングは、大量の実行時データに対して操作を行い、プロセス内で何が起こっているかを俯瞰的に表示する実行時分析の一種です。 収集されたデータは、CPU 使用率、メモリの % 割り当て、スレッドのアクティビティなど、プログラム操作のさまざまな側面に関連しています。
プロファイリングは、メモリスナップショットのキャプチャーのように瞬時に実行される場合もあれば、長時間実行される場合もあります。 例: CPU プロファイラは、数時間または数日間のプログラム動作など、任意の長期間にわたってデータを収集できます。
プロファイリングはいつ役に立ちますか?
プロファイリングツールは次のことに役立ちます。
バグ、ボトルネックを特定し、パフォーマンスの低下を診断します
ホットスポットと最適化の機会を特定する (必ずしもパフォーマンスの問題に関連しているわけではありません)
さまざまなソリューションのパフォーマンスを評価または比較します
プログラムが内部でどのように動作するかをよりよく理解する
サポートされているプロファイリングタイプ
IntelliJ プロファイラーは単一のツールではなく、関連するツールのスイートです。 それぞれに独自の適用分野があります。
CPU とメモリのライブチャート - プロセスをリアルタイムで監視することができます。 このタイプの診断は、時間の経過に伴うリソース消費メトリクスを提供し、監視ツールとして、またはパフォーマンスの問題の場合は、さらに調査するための開始点として役立つ場合があります。
CPU と割り当てのプロファイリング – 特定の期間に CPU およびメモリリソースがどのように使用されたかを確認できます。 これは、ホットコードの検出、最適化の機会、プログラムが実行時にどのように動作するかを発見するのに役立つ場合があります。
メモリスナップショット – 特定の瞬間にメモリがどのように使用されているかを分析できます。 このデータは、メモリ関連の問題を調査できます。
スレッドダンプ - 特定の瞬間におけるプログラムの状態を確認できます。 生成されたデータは、すべてのスレッドの状態をキャプチャーします。 これは、たとえば、応答しないアプリケーションを調べる場合に役立ちます。