4

VisualVMを使用して64ビットVMを搭載したMacでプロファイリングしようとしていますが、成功していません。

長い間隔でしか更新されないようです(キーボードから10分間離れて、戻って1つの更新を見つけるまではまったくプロファイルされないと思いました。2秒ごとに実行する必要があると思います)。

ほとんどの場合、「プロファイリング情報はまだ利用できません」というメッセージが表示されます。一度動作すると、合計4つのメソッド呼び出しが見つかりました。その時間枠で数百万が発生したでしょう。

アプリが終了したときのスナップショットには、いくつかのシステムスレッドが表示されていますが、私のコードは表示されていません。

デフォルトから設定を変更していません。コードが除外されていないことを確認しました。

VisualVMは64ビットJVMのプロファイリングのためにMacで動作しますか?

最新のJDKのjvisualvmと、java.netの少し後のバージョンの両方を試しました。

javaバージョン"1.6.0_22"Java(TM)SEランタイム環境(ビルド1.6.0_22-b04-307-10M3261)Java HotSpot(TM)64ビットサーバーVM(ビルド17.1-b03-307、混合モード)

システムバージョン:Mac OS X 10.6.4(10F569)

何かご意見は?それはあなたのために働きますか?

ありがとう!

4

1 に答える 1

2

ある種のパイロットエラー。

私は、スレッドを作成し、スレッドのrunメソッドでループでスピンするテストアプリのベンチマークを行っていました。cpu、sleep()、およびprintln()を使用するためにタイトなループを実行しました。

しかし、問題はそれが1つの方法ですべてだったということです。VisualVMは、メソッドを終了するときにのみメソッドを追跡するようです。したがって、1つのメソッドがループしているため、メソッドを終了したり、追跡イベントを生成したりすることはありませんでした。

run()メソッドからrun()から繰り返し呼び出される別のメソッドにコードを移動したところ、動作するようになりました。

于 2010-11-04T23:01:17.443 に答える