VisualVM CPUプロファイリングはMacで機能しますか?
質問
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ホットスポット(TM)64ビットサーバーVM(ビルド17.1-B03-307、ミックスモード)
システムバージョン:Mac OS X 10.6.4(10F569)
何かご意見は?それはあなたのために働きますか?
ありがとう!
解決
種類のパイロットエラー。
テストアプリをベンチマークしていて、スレッドを作成し、スレッドの実行方法でループでスピンしました。 CPUを使用するためにタイトなループ、Sleep()、およびprintln()を使用しました。
しかし、問題は、それがすべて1つの方法にあったことです。 VisualVMは、それらを終了するときにのみメソッドを追跡するように見えます。そのため、1つのメソッドループがあるため、メソッドを終了することはなく、追跡イベントを生成することもありませんでした。
コードをrun()メソッドから、run()から繰り返し呼ばれる別のメソッドに移動しましたが、現在は機能します。