私はJavaプロファイラーで、以下の要件をすべて満たす、商用または無料の非常に需要の高いプロダクション環境で使用するために探しています。
本質的に、誰もがそこにいることを知らなかったり気にしたりせずにすべてが正常である場合、本番環境で休止状態にできるものを必要としますが、ホットスポットや同期などの見つけるのが難しい問題を特定するための手間(およびパフォーマンスの低下)に自由に接続できます問題。
試しましたか YourKit ?それはあなたが探しているほぼすべての機能を備えています。
Java VisualVMは、Java Virtualで実行しているときにJavaテクノロジーベースのアプリケーション(Javaアプリケーション)に関する詳細情報を表示するためのビジュアルインターフェースを提供するツールですマシン(JVM)Java VisualVMは、Java開発キット(JDK)ツールによって取得されたJVMデータを整理し、次のことを可能にする方法で情報を提示します複数のJava=アプリケーションのデータをすばやく表示します。ローカルホストのアプリケーションおよびリモートホストで実行されているアプリケーションのデータを表示できます。JVMソフトウェアに関するデータをキャプチャしてローカルに保存することもできます。システム、および後でデータを表示するか、データを他のユーザーと共有します。これは、Oracle JDKに付属しています...
$ jvisualvm
jProfiler に満足しています。
私は Java Flight Recorder を好みます。パフォーマンスのオーバーヘッドはほとんど発生せず、GUIも優れています。 JVMパラメータを追加する
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true
jMCでレコードを開きます。
CA Wilyをチェックアウトします。
私はEclipse TPTP-Eclipse Test&Performance Tools Platform Projectを使用しています。生産用途に適しているかどうかは、ユーザーによって異なります。私にとって、それは問題なく、あなたのニーズを満たしています。
別のオプションは http://www.newrelic.com/ です。私たちはこれをしばらくプロダクションで使用しており、かなり信頼性が高く、パフォーマンスが高いようです。セットアップが簡単(1つの.jarと-agentコマンドラインオプション)。
Javosizeと呼ばれる別の新しいオプションがあります
私がグーグルで「ベストJavaプロファイラ」を探したとき、私は最初の無料リンク(それはブログです)を見ました、それは投稿へのコメントの同じツールです:
それが役に立てば幸い!
編集:コメントにあるように、リンクされたリンクはプライベートフォーラムへのリンクです。申し訳ありません。ここにメインサイトへのリンクがあります:
FusionReactor Javaアプリケーションパフォーマンスモニターには、非常に低いオーバーヘッドも含まれますJavaプロファイラーの機能ポートフォリオの一部として。 http://www.fusion -reactor.com/production-Java-profiler/ FusionReactorは数分でインストールでき、14日間無料で試用できます。
Java Mission Control を Flight Recorder と組み合わせて見てください。 Oracle JDK 7 Update 40(7u40)のリリース以降、Java Mission ControlはHotSpot JVMにバンドルされているため、高度に統合されており、ランタイムパフォーマンスへの影響が小さいとされています。 Callgrindのような呼び出しツリー機能があります。