0
0

java OutOfMemoryErrorとJProfiler

Last updated at Posted at 2023-11-27

JProfiler紹介

ej-technologies社が開発したJavaアプリケーションのパフォーマンス診断ツールです。
今度はJProfilerを使用してアプリケーションのパフォーマンスを診断してみます。

インストール

JProfiler UI をインストールします:
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

ダブルクリックでJProfilerで開く
大きなオブジェクト対象が確認できる
image.png

エラー発生した行も確認できる
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0