Javaプロファイリングでは、現在、すべての(フリー)道路がJDK6に含まれているVisualVMプロファイラにつながっているようです。それは素晴らしいプログラムのように見え、誰もが "実行中のプロセスにそれを付ける"方法を主な特徴として指摘しています。問題は、ローカルプロセスでを使用する唯一の方法はと思われます。 私のプログラムをプロファイラで開始し、その実行全体をに追跡できるようにしたい。プロファイルVisualVMでのJavaプログラムの実行
how to profile application startup with visualvmに記載されている-Xrunjdwp
オプションを使用しようとしましたが、2つの転送方法(共有メモリとサーバー)の間でどちらも役に立ちません。 VisualVMは前者との統合がないようですが、VisualVMはlocalhost
または127.0.0.1
への接続を拒否します。私もSystem.in
の単純な読み込みを私のプログラムに挿入して実行中の一時停止を挿入しようとしましたが、その場合VisualVMは読み込みが完了するまでブロックし、実行が終了するまでプロファイリングを開始できません。 私もthe Eclipse pluginを調べてみましたが、ウェブサイトにはデッドリンクがたくさんあり、ランチャーは(これはもはや正確ではないかもしれません)を使用しようとするとNullPointerException
でクラッシュします。
Cから来て、これは私にとっては特に難しいことではありません。私は何かを見逃しているのですか、これは本当に不可能な要求ですか?私は、さまざまな(無料の)プロファイラを使用することを含む、あらゆる種類の提案にオープンしています。私はコマンドラインを嫌うものでもありません。
あなたが言いました質問で、投稿された 'suspend = n'の代わりに' suspend = y'を試しましたか?もしそうなら 'System.in'から読み込む必要はありません。 –
はい、問題はありません。 'suspend'パラメータに関係なく、VisualVMにプログラムを接続する方法はありません。 – kbolino
どこかに「適切に」あるはずです。もちろん、VisualVMはプロセスを見ることができます。問題は、それがプロファイルできないということです。 – kbolino