JProfiler とは?
JProfiler は、実行中の JVM 内部で何が起きているかを分析するためのプロフェッショナルなツールです。開発時や品質保証、そして本番システムで問題が発生した際の緊急対応にも利用できます。
JProfiler が扱う主なトピックは4つあります。
-
Method calls
これは一般的に「CPU プロファイリング」と呼ばれます。メソッドコールは様々な方法で計測・可視化できます。 メソッドコールの分析によって、アプリケーションが何をしているのかを理解し、パフォーマンス改善の方法を見つけることができます。 -
Allocations
ヒープ上のオブジェクトを割り当て、参照チェーンやガーベジコレクションの観点から分析することは、「メモリプロファイリング」に分類されます。 この機能により、メモリリークの修正や、全体的なメモリ使用量の削減、一時オブジェクトの割り当て数の減少が可能です。 -
Threads and locks
スレッドは、例えばオブジェクトの同期化によってロックを保持できます。複数のスレッドが協調動作する際にはデッドロックが発生することがあり、JProfiler はそれを可視化できます。 また、ロックの競合(コンテンド)が発生すると、スレッドはロックを取得するまで待機する必要があります。JProfiler はスレッドとその様々なロック状況を可視化します。 -
Higher level subsystems
多くのパフォーマンス問題は、より高いセマンティックレベルで発生します。例えば JDBC コールの場合、どの SQL ステートメントが最も遅いかを特定したいでしょう。 そのようなサブシステム向けに、JProfiler は「プローブ」を提供し、呼び出しツリーに特定のペイロードを attach できます。
JProfiler の UI はデスクトップアプリケーションとして提供されます。インタラクティブにライブ JVM をプロファイルしたり、UI を使わずに自動でプロファイルすることも可能です。 プロファイリングデータはスナップショットとして永続化され、JProfiler UI で開くことができます。さらに、コマンドラインツールやビルドツールとの連携により、プロファイリングセッションの自動化もサポートしています。
次はどうすればよいですか?
このドキュメントは順番に読むことを想定しており、後半のヘルプトピックは前の内容を基礎としています。
まず、アーキテクチャの技術的な概要を読むことで、プロファイリングの仕組みを理解できます。
JProfiler のインストールや JVM のプロファイリングに関するヘルプトピックを読むことで、すぐに使い始めることができます。
その後、データ記録や スナップショットの説明を通じて、JProfiler を自分で探求できるレベルまで理解を深められます。
続く章では、JProfiler のさまざまな機能についての知識を深めていきます。最後のセクションはオプションの読み物であり、特定の機能が必要な場合に参照してください。
皆様からのフィードバックをお待ちしています。もし特定の分野でドキュメントが不足していると感じたり、不正確な記述を見つけた場合は、 [email protected] までお気軽にご連絡ください。
キーボードを使って章を移動できます。k キーで次へ、j キーで前へ戻ります。