3

VisualVM を使用して、Tomcat で実行されている Web アプリケーションのプロファイルを作成しようとしています。ちなみに、Eclipse IDEを使用しています。私が理解できないことが 1 つあります。Tomcat で Web アプリケーションを起動し、メモリ使用量のプロファイリングを開始すると、パッケージ org.apache.** のいくつかのクラスしか表示されないということです。Tomcat の実行ログを見ると、インスタンス化されているクラスがはるかに多いと思います。

さらに、私の Web アプリケーションは、実際には Apache CXF フロントエンドで開発された Web サービスです。デプロイの時点で、Apache CXF の多くのコンポーネントが既にインスタンス化されていることがログからわかります。しかし、プロファイリング結果に CXF に関連するクラスが見つかりません。

要求を送信して応答を返すために Web クライアントを起動したときだけ、プロファイリング結果に多数の CXF 関連のクラスが表示されました。クライアントが要求する前に、Web サービス用に既にインスタンス化されたオブジェクトがあるはずです。

私にはすべてが非常に不明確なままです。あなたの答えに感謝します。

4

1 に答える 1

3

コードのどの部分が遅いかわからない場合は、CPUサンプリングから始めることをお勧めします。何が起こっているかを(サンプリング結果に基づいて)よく理解したら、Tomcatサーバーの一部だけをプロファイリングできます。プロファイリングの詳細、およびプロファイリングルートとインストルメンテーションフィルタを設定する方法については、「VisualVMを使用したプロファイリングパート1 」および「VisualVMを使用したプロファイリングパート2 」を参照してください。

于 2012-12-28T20:44:30.977 に答える