次のすべての要件を満たす、商用または無料の非常に需要の高い本番環境で使用するJavaプロファイラーを探しています。
- コードとの軽量統合(特別なオプションを使用した再コンパイル、コードフックなどはありません)。プロファイラー固有の.jarをアプリケーションコードと一緒に削除しても問題ありません。
- アプリケーションを再起動せずにJVMに接続/切断できる必要があります。
- プロファイリングがアクティブでない場合、パフォーマンスへの影響はありません
- プロファイリングがアクティブな場合、パフォーマンスへの影響はごくわずかです。非常にわずかな劣化は許容されます。
- プロファイラーが行うすべての「期待される」ことを実行する必要があります-ホットスポット、オブジェクト割り当て/メモリプロファイリングなどを見つけるために各メソッドで費やされる時間。
基本的に、誰もがそこにあることを知らない、または気にせずにすべてが正常であるときに本番環境で休止状態になることができるものが必要ですが、その後、ホットスポットや同期などの見つけにくい問題を特定するために、面倒な(およびパフォーマンスの低下)に自由に接続できます問題。