问题防止程序的痕迹
为什么VisualVM的试图查看对象分配堆栈跟踪时终止我的程序,以及如何解决这个问题?
我清理它有一些内存的问题,应用程序中的最大的问题是创造了一堆短命int[]
导致GC火像疯了似的:
当我右键单击int[]
并选择拍摄快照和显示分配堆栈轨迹,我的应用程序关闭并弹出一个警告框,说无法获得结果快照。该应用程序终止:
我关于这个问题发现的最接近的事情是一个bug报告,其中recommended running my profiled application with -Xnoclassgc
。它没有奏效,结果是一样的。
规格
VisualVM: 1.8.0_60 (Build 1380-140910); platform 20140910-unknown-revn
Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM (25.60-b23, mixed mode)
Eclipse: Luna Release (4.4.0) Build id: 20140612-0600
System: Windows 7 (6.1) Service Pack 1, amd64 64bit
崩溃日志
崩溃日志的超出大小字符限制,所以我不得不把它放在别处。抱歉。
只是先问几个问题: 1. Eclipse是否与您刚才描述的这种情况有关?您列出了您的Eclipse版本,但没有提及任何其他方式。 2. Java和系统信息是否来自您运行应用程序的服务器? –
此外,应用程序崩溃应导致保存用于调试目的的崩溃报告。你能找到文件(hprof?)并粘贴相关内容吗? –
你测试Java Mission Control(jmc.exe)吗?这是相同的工具,但Java8有一些没有免费的功能。但是你可以做到与VisualVM相同的功能。 –