質問はこれに強く関連していると思いますが、それは閉じられており、解決策は私には明確ではないようです。
VisualVMを使用して、私のコンソールScalaアプリケーションのプロファイルを作成しようとしています。これを行うには、VisualVMを起動し、Scalaアプリケーションを起動し、VisualVMでそのノードを開き、[プロファイラー]タブに移動して、[CPU]をクリックします。ボタンはしばらくの間灰色になり(ステータスが「プロファイリング非アクティブ」から何にも変更されない間)、その後アクティブに戻りますが、プロファイリングデータは表示されません。
アプリケーションは、ファイルの読み取り、データ処理(約1分かかります)、stdoutデータの出力を行い、終了します。また、プログラムの最初と最後に追加Thread.sleep(60000)
して、VisualVMがプログラムをキャプチャしてジョブを実行するのに十分な時間を確保しようとしましたが、何も変わりませんでした。
私がリンクした関連する質問とは異なり、Eclipseなどからアプリを起動しません-次のコマンドラインを使用してアプリを起動します:
java -classpath myapp.jar:lib/* MyApp.Main
すべてのライブラリ(を含むscala-library.jar
)はに配置されlib/
ます。アプリは期待どおりに動作します。
更新:
- YourKit Java Profiler 11.0.2を試しましたが、で失敗し
AttachNotSupportedException
ます。 - エージェントを手動で接続してYourKitで管理しました。
- IDE(またはビルドツール)からアプリケーションを実行したり、クラスパス以外のJVMオプションを変更したりしていないことを強調する価値があるようです。私が理解している限り、この問題はJVMのバージョンとユーザー/権限の問題に依存しているようです。目的は、問題の実際のメカニズムと、すべてのものを機能させるように構成する方法を理解することです。
使用したソフトウェアのバージョン:
- YourKit Java Profiler 11.0.2
- VisualVM 1.3.4
- SBT 0.12.3(ビルドするが実行しない(実際に両方を試した))
- Scala 2.9.2
- Oracle Java 1.7.0_04-b20
- XUbuntu Linux12.0432ビットi386
- Linuxカーネル3.2.0-24-generic-pae