パフォーマンスのボトルネックがあるかどうかを確認するために、大きな Java アプリケーションをレビューしています。本当の問題は、パフォーマンスの問題を単一のモジュールに特定できないことです。そのため、アプリケーション全体が遅いです。
これを支援するために使用できるツール/テクニックはありますか?
パフォーマンスのボトルネックがあるかどうかを確認するために、大きな Java アプリケーションをレビューしています。本当の問題は、パフォーマンスの問題を単一のモジュールに特定できないことです。そのため、アプリケーション全体が遅いです。
これを支援するために使用できるツール/テクニックはありますか?
実行中のコードでプロファイラーを使用してみてください。ボトルネックを特定するのに役立ちます。jprofilerまたはNetbeans プロファイラーを試す
を使用して満足することがよくありますJava -Xprof
。これにより、コードがほとんどの時間を費やす関数のソートされたリストが得られます。
Java 6 を実行している場合は、付属の監視ツールを使用できます。
YourKitは優れたJavaプロファイラーです(無料ではありません)。
As we see from How can I profile C++ code running in Linux?, the most statistically significant approach is to use a stack profiler.
Well, Java runs in the JVM, so getting a stack useful for C code won't be useful for us (it'll get the JVM stuff, not your code). Fortunately, Java has jstack
! http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstack.html
It'll give you a bunch of threads, like the GarbageCollector. Don't worry about those, just look at where your threads are.
テスト/開発目的で、Oracle JRockit Mission Control をこのサイトから無料でダウンロードできます。(ログインが必要ですが、アカウントは任意のメールアドレスで設定できます)
ドキュメントはこちら。ホットスポット、メモリ リークなどを見つけることができます。