如果以下条件为真,那么解决Java崩溃的最佳实践是什么:
PS:对于VM崩溃,我的意思是VM编写一个像hs_err_pid1234.log这样的转储文件并终止。
发布于 2008-10-22 11:13:23
读取hs_err_pid1234.log文件(或任何错误日志文件名)。里面通常有线索。下一步取决于您在日志中发现了什么。
是的,它可能是您正在使用的JVM实现的特定版本中的一个bug,但我也看到了操作系统中的内存碎片所造成的问题。例如,Windows容易将dll引脚在不适当的位置,因此,当JVM请求时,Windows无法分配连续的内存块。其他的opf内存问题也可以通过这种类型的崩溃转储来表现出来。
发布于 2008-10-22 11:03:39
更新或替换JVM。如果您目前有最新版本,那么尝试一个旧版本,或者如果您没有最新版本,尝试更新它。也许这在你的特定版本中是个已知的问题?
发布于 2008-10-22 11:41:10
假设跨机器的JVM版本是相同的:
找出JVM崩溃的机器的不同之处。同样的OS和OS版本?例如,我们在特定版本的Red上遇到JVM崩溃的问题。我们还发现一些旧的Red版本无法正确地处理额外的内存,导致交换空间耗尽。(我们的解决方案是升级RedHat)。
另外,程序是否在机器上做完全相同的事情?它是否访问共享文件系统?文件系统是否以类似方式安装在您的计算机(SMB/NFS等)上?一定是不一样的。
日志文件应该会让您了解崩溃发生的位置(例如,malloc)。
https://stackoverflow.com/questions/225207
复制相似问题