質問

VisualVM でプロファイリングを試すことができるように、Java 1.6_07 をインストールしました。アプリが時間の 60% を費やしていることがわかります。 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

その間に何をしていたかを調べるにはどうすればよいですか?何かが呼び出すのを待ったり、他のことをしたりするのにどれくらいの時間がかかりましたか?それは何と呼ばれていましたか、そしてそれは何と呼んでいましたか?Quantify や Perl プロファイラーのような、より深いレベルにドリルダウンする方法が見つからないようです。

役に立ちましたか?

解決

VisualVM の経験はありませんが、JRockit のプロファイラーは使用できます する この情報を提供します。代わりにそれを使用することを検討してもよいでしょう。

アップデート: Java プロファイラーのリストを含む質問が見つかります。 ここ, 、削除された質問を表示するのに十分な担当者を持つユーザー向け。

他のヒント

あなたのアプリは RMI over TCP を使用していますか?そうでない場合、これは VM のインストルメントによって引き起こされるハイゼンバグである可能性がありますか?VisualVM は JVM で何が起こっているかを把握するために RMI 呼び出しを使用する必要があると思います...

使い始めました 新しい VisualVM 1.2. 。これにより、CPU のプロファイリングとコール グラフを使用したドリルダウンが可能になります。やってみて。

1.3.2 を使用すると、これが報告されているハングアップであることがわかります。1.3.2 では、スレッド ダンプを実行してこの呼び出しを探すと、そのスレッドの呼び出しチェーンのどこにその呼び出しがあるかを確認できます。ユヴァル F がこれについて言及しているのか、それとも別のことを言及しているのかはわかりません。呼び出しチェーンを上に見て、呼び出している内容などを確認し、下に見て、呼び出している内容などを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top