web-dev-qa-db-ja.com

visualvmでアプリケーションの起動をプロファイルする方法

私が知る限り、 VisualVMを使用して実行中のアプリケーションのみをプロファイルできます

VisualVMを使用してJavaアプリケーションの起動と起動をプロファイルする方法を知っている人はいますか?

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

ドキュメントを読み間違えたといいのですが。

ありがとう、p。

53
pstanton

`-Xrunjdwp"コマンドラインオプションを使用してプロファイリングを設定していますか?設定している場合、そのオプションには "suspend"パラメータ がこの目的のためだけにあります:

ターゲットVMがメインクラスがロードされる直前に中断される場合はtrue、そうでない場合はfalse。

私自身の設定の例:

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

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

9
skaffman

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

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

これはクラスのロードなどをプロファイルしませんが、私には十分です。

17
KarlP

私は Startup Profiler を見つけました:

VisualVM 1.3.6のスタートアッププロファイラプラグインは、ローカルJava 5+アプリケーションの起動時からのインストルメント化されたプロファイリングを可能にします。これは、実行時間の短いプロセスをプロファイリングするときにも役立ちます。

9
Haim Raman

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

0
Robert