我认为这个问题与这个问题密切相关,但它是封闭的,解决方案对我来说似乎并不明确。
我正在尝试使用 VisualVM 来分析我的控制台 Scala 应用程序。我通过启动 VisualVM、启动我的 Scala 应用程序、在 VisualVM 中打开其节点、转到“Profiler”选项卡并单击“CPU”来做到这一点。该按钮会变灰一段时间(而状态永远不会从“分析不活动”更改为任何内容),然后恢复活动但不显示分析数据。
应用程序执行一些文件读取、数据处理(大约需要一分钟)、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
- 视觉虚拟机 1.3.4
- SBT 0.12.3(构建但不运行(我实际上都尝试过))
- 斯卡拉 2.9.2
- 甲骨文 Java 1.7.0_04-b20
- XUbuntu Linux 12.04 32 位 i386
- Linux 内核 3.2.0-24-generic-pae