home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Java/Profile/VisualVMとIDEの連携(NetBeans他), 2013-07時点(JDK7前提)

Java/Profile/VisualVMとIDEの連携(NetBeans他), 2013-07時点(JDK7前提)

Java / Profile / VisualVMとIDEの連携(NetBeans他), 2013-07時点(JDK7前提)
id: 1200 所有者: msakamoto-sf    作成日: 2013-07-06 13:42:14
カテゴリ: Java 

JDK7以降のみを対象として、2013年7月現在、JavaのProfile技法はどんな状況にあるのか、VisualVMとNetBeansをメインにざっくりと調べたメモです。
個人レベルでのプログラミングの勉強とか、お金ない環境でとりあえずJDKさえあればナントカなる、という状況を想定してるため、商用製品でどんなのがあるかまで調べてないです。
なお実際に試したのはJDK7(7.0.25), NetBeans 7.3.1です。

VisualVMとNetBeans

JDK6の途中からVisualVMという機能がJDKに追加されまして、2013-07時点では今のところJDKさえあれば使えるProfile技法としてメジャーのようです。
元々NetBeansで開発されてた機能が、単体で切りだされたか何かで、とにかくJDK6の途中から使えるようになり、JDK7でも問題なく使えてNetBeansの皆さんどうもありがとうという感じです。

2008年と古めの記事:

JDK7でのVisualVMのドキュメントと、リモートのJVMにJMX接続する際の資料:

NetBeans 7.3.1 においては、NetBeansでProfiler機能を使う = VisualVMと同等+NetBeansでのソースコード参照の連携とか色々便利状態と考えて問題無さそうです。

入り口:

NetBeansを使ったProfiler入門:

リモートマシンのJVMのProfileについて

VisualVMの仕組みでは、リモートマシン上のJavaアプリをプロファイリングする機能はサポートされていないようです。JVMの監視についてはサポートされていますので、メモリ使用量やスレッドダンプなどについては取得出来るようです。

ただ、Googleで検索してみると"VisualVM remote profiling"で結構引っかかるんですよね・・・。監視レベルでのメモリとかスレッドダンプの取得も含めて"Profiling"と指しているのか、ヒープのダンプであったりメソッド単位でのCPU使用状況の監視なども含めているのか、良くわかりません。

なお、NetBeans6では、ターゲット側に特別なパッケージを導入することで、リモートのJVMに対してもヒープのダンプ取得や、メソッド単位でのProfilingが使えたようです。

VisualVMで粒度の細かいプロファイリングをリモートJVMに対して行う手法について、今回は調べきれませんでした。商用製品とかであれば対応してくれたりするのでしょうか・・・。

Eclipse, IntelliJ IDEAとの連携

Eclipseですと、"Eclipse TPTP"というプロジェクトがあって、こちらでプロファイリング機能が開発されているようです。

VisualVMとの連携ですが、いくつか専用のプラグインが開発されたりしているようです。

IntelliJ IDEAのPluginリポジトリで見つけた、プロファイリング系のPlugin:



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-07-06 13:42:49
md5:294e9ec1eb9786816474432a2aa15351
sha1:15540532054f972fa0b2637c70a43ee40c8adf1b
コメント
コメントを投稿するにはログインして下さい。