Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 8的异常和性能问题_Java_Performance_Java 8_Out Of Memory - Fatal编程技术网

java 8的异常和性能问题

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存储位置的

最近,我注意到客户日志中出现了一些不常见的OutOfMemoryError异常和一个性能问题。它可能来自使用Java8的JVM(堆或堆栈)

我的问题如下: 1.如何获取异常的源? 2.我应该(在生产中)使用哪些JVM选项? 3.我应该配置垃圾收集器的循环吗

  • 在内存泄漏的情况下,查找异常源可能很困难。通过在
    java
    命令中添加
    -XX:+heapdumponootfmemoryerror
    标志,可以将java配置为在发生OutOfMemoryException时执行堆转储。有关heapdump存储位置的更多详细信息,请参见此问题。然后,客户可以在下次崩溃时给您heapdump,您可以使用类似于查看哪些对象正在消耗内存的工具。这将给你一个关于发生了什么的提示
  • 使用自定义堆大小是很常见的。如何做到这一点在本问题中进行了描述
  • 只有在遇到性能问题时才应配置垃圾收集。因为问题是内存不足,而不是性能,所以我不建议在这里更改任何内容

  • 您还可以使用一些分析工具,如VisualVM(包含在JDK的JAVA_PATH/bin/jvisualvm.exe下)。将VisualVM连接到Java进程,并进行内存分析以检测最重的分配对象。我不知道为什么这个一般性问题已经解决了。他只是想知道如何获得这类问题的细节。我不认为他能提供一些他不了解的细节…@fandango首先,一次问三个问题在总体上不鼓励Stackoverflow。第二,其中至少有两个绝对过于宽泛,无法解决,因为他们要求选项和配置,就好像有一个神奇的“适合所有应用程序的最佳”配置。提问者甚至没有解释是什么让他们认为
    OutOfMemoryError
    s是“不真实的”。