2010-12-14 16 views
50

私が言うことができる限り、you can only profile a running application using VisualVMvisualvmでアプリケーションの起動をプロファイルする方法

誰でも、VisualVMを使ってJavaアプリケーションの起動と起動をプロファイルする方法について知っていますか?

私は方法が必要であると確信しています。そうでなければ、それは大きな見落としになります。

私はちょうどドキュメントを誤解しました。

ありがとうございました。

答えて

9

あなたは `-Xrunjdwp」コマンドラインオプションを使用してプロファイリングを設定しているそうであれば、そのオプションは、まさにこの目的のために"suspend" parameterを持っています?

真のターゲットVMをすぐに中断される場合メインクラスがロードされる前に、自分自身の設定から、それ以外の場合はfalse

例:。

-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 

私はこれを使用YourKitプロファイラーですが、原則は同じだと思います。

+0

私はXrunjdwpオプションを使用していません。サスペンドのデフォルト値は 'true'ですが、それは間違っていますか? – pstanton

+0

@pstanton:「Xrunjdwp」の内容は分かりません。私はそれを読むことをお勧めします、あなたがそれを使用できるかどうかを確認してください。 – skaffman

+0

@pstanton:使い終わった正確な-Xrunjdwpコマンドは何ですか? VisualVMで使用しようとすると、VisualVMはJVMプロセスに正しく接続できなくなります。 –

0

両方の一般的なJava開発環境(NetBeans/Eclipse)は、アプリケーションの実行を、付属のVisualVMで直接サポートします。 Eclipseの場合は、pluginをインストールする必要があります。 NetBeansの場合、AFAIKはすでに統合されています。
ソースがない場合でも、両方の環境でJARファイルを実行できるため、VisualVMに接続されたアプリケーションを起動できます。

+0

Eclipseプラグインはこれをサポートしていません。プロセスの開始時にVVMを起動するだけです。 – pstanton

17

eclipseランチャーを使用し、メインメソッドの適切な場所にブレークポイントを設定します。

次に、デバッグモードで起動し、visualVMでプロファイリングを有効にしてから、Eclipseを使用して再開します。

これはクラスの読み込みや処理をプロファイルしませんが、十分です。

+0

私はそれを試して、このアプローチが動作することを確認することができます。 – Raedwald

8

私はStartup Profilerが役に立ったと評価してい:VisualVMの1.3.6のための

スタートアッププロファイラプラグインは、その起動時からローカルのJava 5+アプリケーションのインストルメント プロファイリングを可能にします。短期実行プロセスのプロファイリングに役立つのは です。

+9

これは私のために働いていましたが、別のVisualVMアプリケーションをダウンロードして、JDKに付属のものを再利用しようとしないようにしてください。なんらかの理由で、Startup Profilerプラグインは、株式JDKバージョンでは使用できません。 – Max

関連する問題