Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止程序在显示分配堆栈跟踪时崩溃_Java_Memory_Snapshot_Visualvm - Fatal编程技术网

Java 防止程序在显示分配堆栈跟踪时崩溃

Java 防止程序在显示分配堆栈跟踪时崩溃,java,memory,snapshot,visualvm,Java,Memory,Snapshot,Visualvm,问题 为什么VisualVM在试图查看对象分配堆栈跟踪时终止我的程序,以及如何修复它 我正在清理一个有一些内存问题的应用程序,最大的问题是创建了一堆短期的int[],这会导致GC疯狂地启动: 当我右键单击int[]并选择“拍摄快照”和“显示分配堆栈跟踪”时,我的应用程序将关闭,并弹出一个警告框,提示无法获取快照结果。应用程序已终止: 我在这个主题上发现的最接近的东西是一个bug报告,它。它不起作用,结果是一样的 规格 VisualVM: 1.8.0_60 (Build 1380-1409

问题

为什么VisualVM在试图查看对象分配堆栈跟踪时终止我的程序,以及如何修复它


我正在清理一个有一些内存问题的应用程序,最大的问题是创建了一堆短期的
int[]
,这会导致GC疯狂地启动:

当我右键单击
int[]
并选择“拍摄快照”和“显示分配堆栈跟踪”时,我的应用程序将关闭,并弹出一个警告框,提示无法获取快照结果。应用程序已终止

我在这个主题上发现的最接近的东西是一个bug报告,它。它不起作用,结果是一样的


规格

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

崩溃日志


崩溃日志的大小超出了字符限制,因此我不得不将其放置在其他位置。对不起。

好的。因此,根据获得的crashlog,您似乎遇到了此处已报告的VisualVM错误


最初bug的提交者将这种行为缩小到Java8,因此您最好的机会是在较旧的(Java7)运行时上运行VisualVM。如果这是您的一个选项,那么您只需要下载一个Java7 JDK,然后直接从那里运行VisualVM。

先问几个问题:1。Eclipse与您刚才描述的这种情况有关系吗?您列出了Eclipse版本,但没有以其他方式提及它。2.Java和系统信息是否来自正在运行应用程序的服务器?此外,应用程序崩溃应导致保存一份崩溃报告以供调试之用。你能找到文件(hprof?)并将相关内容粘贴到这里吗?你测试过Java任务控制(jmc.exe)吗?这是同一个工具,但是对于Java8,它有一些非免费的特性。但是你可以做和VisualVM相同的事情。@GergelyBasco这是启动程序的IDE,不确定这是否会起作用。我使用的是独立的VisualVM,而不是插件。是的,这些是运行分析应用程序的机器的规格。我似乎找不到任何堆转储文件,我将重现该问题,并查看是否生成一个。我还将上传弹出的错误框的图片,这只是一条消息,没有其他内容/:@Mr_Thorynque我以前用过它来监控数据,但我不熟悉它。我将尝试使用它的飞行记录器,看看我是否能接近内存问题,但我非常想知道VisualVM错误背后的问题,以及在只有VisualVM存在/支持的环境中发生此问题时如何解决。我想我现在可以开始使用JMC了,因为使用Java7不是一个选项/:谢谢您找到这个!