Javaで何を使用することをお勧めしますか?
唯一の要件は、それがオープンソースであること、または高価なアカデミックライセンスがないことです。
Jdk6に付属のVisualVMには、基本的なプロファイラーが含まれています。 VisualVMにはjdkが付属しているため、jdk6がインストールされている場合は、おそらくjdk6もインストールされています。
リストがあります ここ (以下にリストします、ケース内のリンクが壊れます)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- NetBeansプロファイラー
- JAMon API
- JBoss Profiler
- MessAdmin
- 赤外線
- TomcatProbe
- Java Interactive Profiler(JIP)
- Profiler4j
- ストップウォッチ
- J測定
- DJProf
- TIJmp
- オールモン
- Appspy
- ユーレカJ
- ヤペックス
- OKTECHプロファイラー
- Perf4j
あ。 Netbeans Profiler 、developer.comの「Product of the Year」受賞者、2009年。
Javaには、 HProf と呼ばれる基本的な組み込みプロファイラーがあります。それが提供する結果を、より完全な機能プロファイラーからの結果と比較することは有用だと思います。
オープンソースツール jvmtop には、基本的なコンソールプロファイラーが含まれています。出力例:
JvmTop 0.7.0 alpha - 15:16:34, AMD64, 8 cpus, Linux 2.6.32-27, load avg 0.41
http://code.google.com/p/jvmtop
Profiling PID 24015: org.Apache.catalina.startup.Bootstrap
36.16% ( 57.57s) hudson.model.AbstractBuild.calcChangeSet()
30.36% ( 48.33s) hudson.scm.SubversionChangeLogParser.parse()
7.14% ( 11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
6.25% ( 9.95s) net.sf.json.JSONObject.write()
3.13% ( 4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()
飾り気のない、使いやすいオープンソースプロファイラーを探している場合は、Jip( Java Interactive Profiler )をご覧ください。 BSDライセンスの下で公開されています。小さなプログラムに非常に役立つことがわかりました。少なくとも、それが与える結果は、hprofsの出力よりも理解しやすい方法です。
Java Mission Control 、開発に自由に使用でき、Eclipseと統合します。 JVMがとにかく収集しているデータに便乗するため、オーバーヘッドが非常に低い(<1%)。
非常に使いやすく、また、他のプロファイリングツールでは通常見られない多くの情報を提供できます。レイテンシープロファイリング、オンラインメモリ検査、詳細なGC統計
これ は迅速で、汚れがあり、非常に効果的です:いくつかのスレッドダンプを取得するか、プログラムを数回一時停止して、スタックトレースを確認します。
JVM Monitor は、Java Eclipseと統合されたプロファイラーで、JavaアプリケーションのCPU、スレッド、およびメモリ使用量を監視します。
さらに詳細な分析が必要な場合は、次のステップとして他のツール(たとえば [〜#〜] tptp [〜#〜] 、 Memory Analyzer )を使用できます。
Netbeans IDEには無料のプロファイラーが含まれています。
また、正しく覚えていれば、JProfilerのアカデミックライセンスは(比較的)安価です。