Thursday Jan 31, 2008

スクリーンショットで見る NetBeans プロファイラ : プロファイルポイント

今回から NetBeans 6.0 での新機能、拡張機能について紹介しています。「ドリルダウングラフ」、「ヒープウォーカ」と紹介してきました。
今回は「プロファイルポイント」です。プロファイルポイントを使うと 定義した条件で
  • 結果のリセット
  • 時間の計測
  • スナップショットの作成
などができます。たとえばコードの何行目を実行するときに時間を計測するとか、スナップショットを撮るなどアクションを実行できます。エディタでソース コードを編集中にアクションを実行したい行でエディタのコンテキストメニューを開き「プ ロファイル」>「プロファイルポイントを挿入」 を選択します。



これがプロファイルポイントを設定するダイアログです。



次の5種類を使うことができます。
  • 結果をリセット
  • ストップウォッチ
  • スナップショットの作成
  • 時間指定のスナップショットの作成
  • トリガーされるスナップショットの作成
簡単な例であるメソッドが呼ばれてから返ってくるまでの時間を計ってみましょう。以下のようにエディタで最初と最後を選択しておきその状態で「プロファイルポイントを挿入」を選び、「ストップウォッチ」を選択します。



すると自動的に開始行と終了行が入力されその間にかかる時間を計測するように設定ができます。



プロファイラを再実行してみましょう。ダイアログの下のほう、「定義済みのプロファ イルポイントを使用」をオンにしておいてください。



また「アクティブなプロファイルポイントを表示」をクリックすると、 以下のように一覧が表示されます。



実際に計測した結果はリアルタイムに出力ウィンドウの「プロファイルポイント」 に表示されます。



レポートリンクで詳細を見ることができます。



NetBeans プロファイラの大まかな機能一覧は
が参考になると思います。

Tuesday Jan 29, 2008

スクリーンショットで見る NetBeans プロファイラ : ヒープウォーカ

NetBeans 6.0 での新機能、拡張機能について紹介しています。前回は「ドリルダウングラフ」でした。
今回は「ヒープウォーカ(HeapWalker)」です。ヒープウォーカはヒープダンプの中身を表示し、メモリーリークなどを引き起こす不必要な参照などを発見するのに役立ちます。NetBeans 6.0 の M6 から入ったのですね、岡崎さんがそのときに書いています。

プロファイル実行中ならばヒープダンプは以下のようにメニューから取得することができます。「プロファイル」>「ヒープダンプを取得」を選択してください。



ダンプ先を指定します。プロジェクトに保存するのがデフォルトですが別の場所にも保存することができます。



保存が完了するとヒープウォーカを起動するかどうか聞いてきますので「はい」 を選択します。



ヒープウォーカはエディタ領域に表示されます。デフォルトでは「概要」 タブが表示されます。ここには「概要」、「環境」、「システムプロパティー」などの情報が表示されます。



クラス」タブを表示してみましょう。それぞれのクラスについてインスタンスビューを表示することができます。



これが「インスタンス」ビューです。インスタンスタブをクリックしただけでは表示されません。クラスビューでクラスを選択する必要があります。



NetBeans プロファイラの大まかな機能一覧は
が参考になると思います。

スクリーンショットで見る NetBeans プロファイラ : ドリルダウングラフ

NetBeans 6.0.1 日本語版の開発ビルドを使って NetBeans プロファイラの以下のチュートリアルを試してきました。 前回までで一通りチュートリアルは試すことができましたね。 今回から NetBeans 6.0 での新機能、拡張機能について見ていきたいと思います。 まずは「Drill Down(掘り下げる)グラフ」です。パフォーマンスの計測時に右上にある円グラフをクリックします。



すると大きく円グラフが表示されることがわかります。(日本語は「掘り下げる」としてしまったのですが…今思うと「ドリルダウン」とカタカナのほうがよかったような…ちょっと反省…)



円グラフにはこの場合だと Java IO、Generic UI、そしてプロジェクトと分かれています。結果を絞り込みたいところをダブルクリックします。



円グラフの上に「スコープ」が表示されていると思います。「プロジェクト」をクリックしてプロジェクトに関係する結果のみ表示させてみました。



NetBeans プロファイラの大まかな機能一覧は
が参考になると思います。

Sunday Jan 27, 2008

スクリーンショットで見る NetBeans プロファイラ : メモリーの解析

NetBeans 6.0.1 日本語版の開発ビルドを使って NetBeans プロファイラの以下のチュートリアルを試しています。 前回まででアプリケーションの監視とパフォーマンスの解析をしてきました。 今回は「メモリーの解析」です。 以下がポイントです。
  1. メモリーの解析を実行
  2. スナップショットをとる
  3. スナップショットを比較する
1.メモ リーの解析を実行

プロファイルダイアログの左側から「メモリー」を選びます。「オブジェクト作成のみ記録」か「オブジェクト作成とガベージコレクションの両方を記録」かを選択することが出来 ます。最初の「オブジェクト作成のみ記録」は下のサブセットで、こち らのほうがオーバーヘッドは少なくてすみます。



以下実行した結果です。デフォルトではバイト数順にソートされます。カラムのタイトルをクリックすることでソート順を切り替えることができます。



2.スナッ プショットをとる

この結果のスナップショットを撮ってみます。以下のようにツールバーのボタンをクリックするか、



左側のプロファイラウィンドウからもスナップショットを作成することができます。



3.スナッ プショットを比較する

保存されたスナップショットは比較することができます。以下のようにツールバーから比較ボタンを押します。



比較したいスナップショットを選択します。



以下のように2つのスナップショットを比較した結果が表示されます。



スナップショットは通常メモリー上に置かれますが必要であればファイルに保存しておくことができます。

スクリーンショットで見る NetBeans プロファイラ : パフォーマンスの解析

NetBeans 6.0.1 日本語版の開発ビルドを使って実際に以下のチュートリアルを試していますが、今回は NetBeans プロファイラで「パフォーマンスの解析」をしてみます。「スクリーンショットで見る NetBeans プロファイラ : アプリケーションの監視」からの続きです。 今回のポイントは以下の3つです。
  1. パフォーマンスの解析
  2. アプリケーションの一部をプロファイルする
  3. ソースコードへジャンプ
1.パフォーマンスの解析

パフォーマンスの解析は以下のダイアログから「CPU」を選択します。アプリケーション全体を解析してもよいのですがここではアプリケーションの一部にしぼって解析してみましょう。



2.アプリケーションの一部をプロファイルする

アプリケーションの一部を解析するには「アプリケーションの一部」を選択し、ルートメソッドを選択します。このルートメソッド以下が解析のターゲットになります。「定義」リンクをクリックしてください。



プロジェクトのツリーが表示されます。ここからプロファイルしたいクラスを選択します。



以下の場合は com.toy.anagrams.lib.\* のみ対象としています。ルートメソッドは複数指定できます。



実際に動かしてみましょう。com.toy.anagrams.lib.\* のものしか表示されないことがわかります。



プログラムをさわってみたところです。新たにいくつかのメソッドが追加表示されたことがわかります。



3.ソースコードへジャンプ

NetBeans プロファイラは IDE と統合されています。ソースを変更したい場合にはこのリストからソースコードへ移動できます。メニューから「ソースへ」を選択してください。



以下のようにエディタ上に対象となるソースコードが読み込まれます。


Saturday Jan 26, 2008

スクリーンショットで見る NetBeans プロファイラ : アプリケーションの監視

NetBeans プロファイラは Java アプリケーションの監視、メモリー、パフォーマンスの解析などを行うツールです。比較的少ないオーバーヘッドでのプロファイリングが可能で、しかも IDE に統合されているため、アプリケーションを作成、修正しながら簡単にプロファイリングができます。NetBeans 6.0 からは IDE に含まれていますのでインストール後すぐに使うことができます。

何回かにわけてこの NetBeans 6.0 のプロファイラの紹介してみたいと思います。NetBeans 6.0.1 日本語版の開発ビルドを使って実際に以下のチュートリアルを試しながらでるだけ多くのスクリーンショットで見ていきたいと思います。 初回はアプリケーションの監視です。監視はスレッドの情報、メモリのアロケーションなどハイレベルな JVM の情報を取得します。手順は以下のようになりますが、2 と 3 は意識しなくてもプロファイラを実行するとダイアログで確認ボタンを押していくだけの作業です。
  1. サンプルプロジェクトの作成
  2. プロファイラの調整
  3. プロファイラの統合
  4. プロファイルの実行
  5. スレッドの監視
1. サンプルプロジェクトの作成

まずプロファイルするプロジェクトを1つ作ります。「サンプル」カテ ゴリに「Angram Game」というのがあります。これを監視してみましょう。



2. プロファイラの調整

一番最初にプロファイラを実行するときは「調整」という作業が必要になります。この作業はわざわざメニューから選んでする必要はなく、プロファイルを実行すると調整がまだ実行されていないと自動的にこの調整のダイアログが表示されます。

メニューから選ぶには「プロファイル」>「拡張コマンド」>「プロファイラの調整の実行」を選びます。



調整する Java プラットフォームを選択します。たいていの場合はここは IDE が使っている JDK 1つだと思いますが、「ツール」>「Java プラットフォーム」で複数のバージョンの JDK を設定している場合にはそのプラットフォーム毎に調整が必要になります。



調整が完了すると以下のようなダイアログが表示されます。



3. プロファイラの統合

ここでプロファイラを実行してみます。プロファイルを開始するには「プロファイル」> 「主プロジェクトをプロファイル」を選ぶか、



ツールバーのボタンをクリックしてください。



ここで以下のようなダイアログが表示されます。このプロジェクトの build.xml にまだプロファイラのターゲットがないというメッセージです。ここで了解ボタンを押して build.xml を変更することを確認します。



もし今後プロファイルする必要がなくなった場合、プロファイラの部分を build.xml から削除したい場合には「プロファイラ」>「拡張コマンド」>「プロファイラの統合を解除」を選択します。



4. プロファイルの実行


さてこれで準備が出来ました。次のようなダイアログが表示されるはずです。左側から「監視」を選択して「実行」ボタンを押します。



サンプル��プリケーションが起動し、「出力」ウィンドウには以下のような VM の状態が表示されます。左からヒープ、GC、スレッドの状態が表示されます。



5.スレッド の監視

一度サンプルプログラムを終了し、2つ上のダイアログで「スレッドの監視を有効化」 というチェックボックスを選択して再度実行してみましょう。以下のように時間軸でスレッドの状態を表示します。



個々のスレッドの詳細を見る場合にはそのスレッド上でダブルクリックします。


About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today