当社は現在、Java プロファイラーを探しています。Compuware (dynaTrace 製品) から、CPU プロファイリング用にこの種の出力を提供できるオファーを受け取りました (例):
(わかりました、画像を投稿できません。質問の残りの部分は、この画像なしで明確になるはずです)
dynaTrace が提供するのは、特定のメソッドのすべての呼び出しのリストであり、各呼び出しにかかった時間、そのうちの CPU 時間、および IO の待機時間に関する正確な情報が含まれています。この (私の意見では非常に単純な) 情報は非常に重要であり、絶対に必要なものです。
さて、問題は...この情報の王様を実際に提供できるプロファイラーが他にあるでしょうか?
VisualVM (JDK に付属)、YourKit、および JProfiler を試しました。それらのいずれかでこの出力を生成する方法が見つかりませんでした。
合計経過時間と実際の CPU 時間の測定はサンプリングで非常に簡単なはずですが、JProfiler と YourKit は経過時間または CPU 時間のいずれかしか測定できず、両方を測定できないようです。VisualVM は、サンプリング時に壁時間と CPU 時間の両方を表示するため、これら 2 つの有料製品のいずれよりも優れています。
特定のメソッドの呼び出しを分離し、各呼び出しの結果を個別に表示することは (メソッドが呼び出された場所やパラメーターを考慮せずにメソッドの集計情報を表示するのではなく)、より高度な機能のように思えますが、これらの製品はどれもこれに対応していないようです。
これら 2 つの機能は、プロファイラーにとって不可欠です。誰かがそれらを提供する製品を知っているなら、教えてください、私はとても感謝しています.
もちろん、言及されたプロファイラーの一部がこれらの機能を備えている可能性は非常に高く、私はそれらを調査する限られた時間の中でそれを行う方法を見つけられませんでした.