php网站开发实施方案,苏州seo网络推广,网站首页鲁大师,家具网站建设的前景分析该OutOfMemoryError异常被抛出JVM#xff0c;当JVM没有足够的可用内存#xff0c;来分配。OutOfMemoryError在Exception类层次结构中属于Error类别。产生OutOfMemoryError我们将分配大量内存#xff0c;这将耗尽堆内存的存储空间。我们将继续分配内存并达到目标#xff0c;…该OutOfMemoryError异常被抛出JVM当JVM没有足够的可用内存来分配。OutOfMemoryError在Exception类层次结构中属于Error类别。产生OutOfMemoryError我们将分配大量内存这将耗尽堆内存的存储空间。我们将继续分配内存并达到目标当JVM没有足够的内存来分配时将抛出OutOfMemoryError。一旦我们捕获到OutOfMemory错误就可以记录该错误。示例public class OutOfMemoryErrorDemo {public static void main(String[] args) throws Exception {int dummyArraySize 15;System.out.println(Max JVM memory: Runtime.getRuntime().maxMemory());long memoryConsumed 0;try {long[] memoryAllocated null;for(int loop 0; loop memoryAllocated new long[dummyArraySize];memoryAllocated[0] 0;memoryConsumed dummyArraySize * Long.SIZE;System.out.println(Memory Consumed till now: memoryConsumed);dummyArraySize * dummyArraySize * 2;Thread.sleep(500);}} catch (OutOfMemoryError outofMemory) {System.out.println(Catching out of memory error);//记录信息以便我们可以生成统计信息throw outofMemory;}}}输出结果Max JVM memory: 119537664Memory Consumed till now: 960Memory Consumed till now: 29760Memory Consumed till now: 25949760Catching out of memory errorException in thread main java.lang.OutOfMemoryError: Java heap spaceat OutOfMemoryErrorDemo.main(OutOfMemoryErrorDemo.java:9)查找OOM根本原因的步骤步骤1在OutOfMemoryError上生成堆转储使用VM参数-XX HeapDumpOnOutOfMemoryError启动应用程序。这将告诉JVM在发生OOM时产生堆转储$ java -XX:HeapDumpOnOutOfMemoryError ...步骤2重现问题如果我们不能在开发环境中重现问题则可能必须使用生产环境。当我们重现问题并且应用程序引发OOM时它将生成一个堆转储文件。步骤3使用堆转储文件调查问题使用VisualVM读取堆转储文件并诊断问题。VisualVM是位于JDK_HOME / bin / jvisualvm中的程序。该堆转储文件具有有关应用程序的内存使用情况的所有信息。