Java OutOfMemoryError和JProfiler

JProfiler介绍

这是由ej-technologies开发的Java应用程序性能诊断工具。
这次我们将使用JProfiler来诊断应用程序的性能。

安装

安装JProfiler用户界面:
https://www.ej-technologies.com/download/jprofiler/files

用JProfiler进行诊断

以下是示例代码。

public class OOMTest {

  public static void main(String[] args) {
    int i=0;
    List<String> list = new ArrayList<>();
    String str = "OOM and GC";
    while(true) {
      list.add(str);
      str = str + str;
      i = i++;
    }
  }
}

执行选项

-Xms5m -Xmx5m -XX:-DoEscapeAnalysis -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\dengxinrong\44.JVM

执行结果

java.lang.OutOfMemoryError: Java heap space
Dumping heap to C:\dengxinrong\44.JVM\java_pid24120.hprof ...
Heap dump file created [3939064 bytes in 0.012 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOfRange(Arrays.java:3664)
	at java.lang.String.<init>(String.java:207)
	at java.lang.StringBuilder.toString(StringBuilder.java:413)
	at OOMTest.main(OOMTest.java:14)
image.png
image.png
image.png
广告
将在 10 秒后关闭
bannerAds