java 8的异常和性能问题
最近,我注意到客户日志中出现了一些不常见的OutOfMemoryError异常和一个性能问题。它可能来自使用Java8的JVM(堆或堆栈) 我的问题如下: 1.如何获取异常的源? 2.我应该(在生产中)使用哪些JVM选项? 3.我应该配置垃圾收集器的循环吗java 8的异常和性能问题,java,performance,java-8,out-of-memory,Java,Performance,Java 8,Out Of Memory,最近,我注意到客户日志中出现了一些不常见的OutOfMemoryError异常和一个性能问题。它可能来自使用Java8的JVM(堆或堆栈) 我的问题如下: 1.如何获取异常的源? 2.我应该(在生产中)使用哪些JVM选项? 3.我应该配置垃圾收集器的循环吗 在内存泄漏的情况下,查找异常源可能很困难。通过在java命令中添加-XX:+heapdumponootfmemoryerror标志,可以将java配置为在发生OutOfMemoryException时执行堆转储。有关heapdump存储位置的
java
命令中添加-XX:+heapdumponootfmemoryerror
标志,可以将java配置为在发生OutOfMemoryException时执行堆转储。有关heapdump存储位置的更多详细信息,请参见此问题。然后,客户可以在下次崩溃时给您heapdump,您可以使用类似于查看哪些对象正在消耗内存的工具。这将给你一个关于发生了什么的提示您还可以使用一些分析工具,如VisualVM(包含在JDK的JAVA_PATH/bin/jvisualvm.exe下)。将VisualVM连接到Java进程,并进行内存分析以检测最重的分配对象。我不知道为什么这个一般性问题已经解决了。他只是想知道如何获得这类问题的细节。我不认为他能提供一些他不了解的细节…@fandango首先,一次问三个问题在总体上不鼓励Stackoverflow。第二,其中至少有两个绝对过于宽泛,无法解决,因为他们要求选项和配置,就好像有一个神奇的“适合所有应用程序的最佳”配置。提问者甚至没有解释是什么让他们认为
OutOfMemoryError
s是“不真实的”。