IntelliJ IDEA 2023.2 ヘルプ

プロファイリングの概要

プロファイリングはランタイム分析の一種で、大量のランタイムデータを操作し、プロセス内で何が起こっているかを俯瞰的に把握できます。収集されたデータは、CPU 使用率、メモリ割り当て、スレッドのアクティビティなど、プログラム動作のさまざまな側面に関連します。

プロファイリングは、メモリスナップショットのキャプチャーのように瞬時に実行される場合もあれば、長時間実行される場合もあります。例: CPU プロファイラは、数時間または数日間のプログラム動作など、任意の長期間にわたってデータを収集できます。

プロファイリングはいつ役に立ちますか?

プロファイリングツールは次のことに役立ちます。

  • バグ、ボトルネックを特定し、パフォーマンスの低下を診断します

  • ホットスポットと最適化の機会を特定する (必ずしもパフォーマンスの問題に関連しているわけではありません)

  • さまざまなソリューションのパフォーマンスを評価または比較します

  • プログラムが内部でどのように動作するかをよりよく理解する

サポートされているプロファイリングタイプ

IntelliJ IDEA プロファイラーは、単一のツールではなく、関連するツールのスイートです。それらはすべて、独自の適用領域を持っています。

  • CPU とメモリのライブチャート – プロセスをリアルタイムで監視できます。このタイプの診断は、時間の経過に伴うリソース消費メトリックを提供し、監視ツールとして、またはパフォーマンスの問題の場合は、さらに調査するための開始点として役立つ場合があります。

  • CPU と割り当てのプロファイリング – 特定の期間に CPU およびメモリリソースがどのように使用されたかを確認できます。これは、ホットコードの検出、最適化の機会、プログラムが実行時にどのように動作するかを発見するのに役立つ場合があります。

  • メモリスナップショット – 特定の瞬間にメモリがどのように使用されているかを分析できます。このデータは、メモリ関連の問題を調査できます。

  • スレッドダンプ - 特定の瞬間のプログラムの状態を確認できます。生成されたデータは、すべてのスレッドの状態をキャプチャーします。これは、たとえば、応答しないアプリケーションを調べる場合に役立ちます。

関連ページ:

CPU とメモリのライブチャート

IntelliJ IDEA は、実行中のプロセスのライブパフォーマンス統計を監視する方法を提供します。静的な数値を表示するのとは対照的に、ライブデータは、リソース消費を視覚化し、リソース関連のボトルネックを特定し、特定のイベントがプログラムのパフォーマンスにどのように影響するかを理解できます。例: 下の図では、ヒープメモリチャートでメモリリークがどのように見えるかを確認できます。原因を解明するだけで十分な場合もあれば、それが不十分な場合は、さらに調査するための手がかりを与えることができます。CP...

チュートリアル: メモリリークを見つける

コードが適切に機能していない状況に陥ることがよくあり、どこから調査を開始すればよいかさえわかりません。解決策が最終的に得られるまで、コードをじっと見つめることはできませんか? もちろんですが、この方法は、プロジェクトに関する深い知識と多くの精神的な努力なしにはおそらく機能しません。より実用的なアプローチは、手元にあるツールを使用することです。彼らはあなたを正しい方向に向けることができます。このチュートリアルでは、IntelliJ IDEA の組み込みツールのいくつかを使用してランタイムの問題を調...

CPU と割り当てプロファイリングの概要

このトピックでは、CPU と割り当てプロファイリングの基本的な概念について説明します。これらの概念は、IntelliJ IDEA プロファイラーがどのように機能するかを理解できます。IntelliJ IDEA プロファイラーの仕組み:CPU および割り当てプロファイリングの場合、IntelliJ IDEA は次のプロファイラーとの統合を提供します。Java Flight Recorder – JDK の一部として提供される標準のプロファイリングツール。非同期プロファイラー – ネイティブコールおよ...

チュートリアル: CPU プロファイリングを開始する

アプリが機能することもありますが、スループットを向上させたり、レイテンシを短縮したりしてパフォーマンスを向上させたい場合があります。また、実行時にコードがどのように動作するかを知りたい、ホットスポットがどこにあるかを判断したい、フレームワークが内部でどのように動作するかを理解したい場合もあります。IntelliJ IDEA は静的に生成できるあらゆる種類の手がかりを提供するため、部分的には設計時にこの情報を得ることができます。もちろん、実行時には物事がさらに複雑になるため、コードを見るだけですべ...

メモリスナップショットを作成して開く

ヒープダンプは、メモリ関連の問題を特定できます。ヒープを分析してメモリリークを見つけ、大量のメモリリソースを使用するコードを見つけることができます。IntelliJ IDEA を使用すると、IntelliJ IDEA またはその他の外部ツールで取得されたかどうかに関係なく、.hprof スナップショットを分析できます。メモリスナップショットを作成するプロセスがすでに実行またはサービスツールウィンドウで実行されている場合は、をクリックします。任意のプロセスの場合: プロファイラーツールウィンドウ ()...

スレッドダンプ

スレッドダンプは、特定の瞬間のアプリケーションの状態を調べるための基本的でありながら強力なツールです。これにより、実行と同期の問題を調査できますスレッドダンプの主な利点は、その単純さです。どのプロセスでも作成できます(エージェントは必要ありません)。それらの出力はプレーンテキストです。つまり、特別なソフトウェアがなくても誰でも読むことができます。IntelliJ IDEA からスレッドダンプをキャプチャーするプロファイラーツールウィンドウのホームタブで、スレッドダンプを作成するプロセスをクリック...