在 Java 分析中,现在似乎所有(免费)道路都通向 JDK6 中包含的 VisualVM 分析器。它看起来像一个很好的程序,每个人都吹捧如何将“附加到正在运行的进程”作为主要功能。问题是,这似乎是在本地进程上使用它的唯一方法。我希望能够在分析器中启动我的程序,并跟踪它的整个执行过程。
我已经尝试使用如何使用 visualvm 分析应用程序启动中-Xrunjdwp
描述的选项,但是在两种传输方法(共享内存和服务器)之间,对我来说都没有用。VisualVM 似乎与前者没有任何集成,VisualVM 拒绝连接or ,所以后者也不好。我还尝试在我的程序中插入一个简单的读取以插入执行暂停,但在这种情况下,VisualVM 会阻塞直到读取完成,并且在执行完成之前不允许您开始分析。 我也尝试过查看Eclipse 插件,但该网站充满了死链接,当我尝试使用它时,启动器只是崩溃了localhost
127.0.0.1
System.in
(这可能不再准确)。NullPointerException
来自 C,这对我来说似乎不是一个特别困难的任务。我只是错过了什么还是这真的是一个不可能的要求?我对任何类型的建议持开放态度,包括使用不同的(也是免费的)分析器,我不反对命令行。