NetBeans Profiler 5.5 の使用方法
シングルスレッドアプリケーションとマルチスレッドアプリケーションのプロファイル
Profiler は、実行するスレッドとは無関係に、計測されたメソッドのプロファイルを行います。つまり、すべてのスレッドで、root メソッドの開始時にプロファイルデータの収集が開始され、root メソッドの終了まで続行します。しかし、すべてのスレッドが同じように動作することがわかっている場合は、root メソッドを開始するすべてのメソッドをプロファイルする必要はない場合が多くあります。このような場合にオーバーヘッドを軽減させるには、一度にプロファイルするスレッドの最大数を制限します。デフォルトではこの値は 32 に設定されています。マルチスレッドアプリケーションの大部分ではこの値で問題ありません。値を n に設定すると、Profiler は root メソッドを開始した最初の n 個のスレッドをプロファイルします。n の値を小さく設定すると、オーバーヘッドは大幅に軽減される場合があります。
一方、マルチスレッドアプリケーションの解析の開始時には、アプリケーションにより起動されるすべてのスレッドの確認が必要になる場合がよくあります。このような場合に対応するために、指定した root メソッドの開始後に VM によって読み込まれる、java.lang.Thread を拡張したすべてのクラス、または java.lang.Runnable を実装したすべてのクラスの void run() メソッドを、暗黙の root メソッドとして取り扱うようにするオプションが用意されています。つまり、このようなクラスの void run() メソッドは、クラスが読み込まれると計測が行われます。ただし、この処理は root メソッドを読み込むまでは開始されず、また root クラスを読み込んだあとに読み込まれたクラスに対してのみ適用されます。root メソッドがアプリケーションで main メソッドとして使用されている場合は、すべてのアプリケーションスレッドが計測されます。それ以外の場合は、root メソッドを呼び出したあとに起動されたスレッドのみが計測されます。この機能を有効にするには、「基本」タブで「Root メソッド実行中に実行開始された新規スレッドを計測」をオンにします。
関連項目
