-Xcheck:memory option

The -Xcheck:memory option can help you identify memory leaks inside the JVM. The -Xcheck:memory option traces the JVM calls to the operating system's malloc() and free() functions, and identifies any JVM mistakes in memory allocation.

The system property -Dcom.ibm.dbgmalloc=true provides memory allocation information about class library native code. Use this system property with the -Xcheck:memory:quick,noscan,callsite=1000 option to obtain detailed information about class library callsites and their allocation sizes. Here is some sample output:
 total alloc   | total freed   | delta alloc   | delta freed   | high water	| largest
 blocks| bytes | blocks| bytes | blocks| bytes | blocks| bytes | blocks| bytes | bytes | num   | callsite
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------------
    125   16000       0       0       0       0       0       0     125   16000     128       1 dbgwrapper/dbgmalloc.c:434
      1    3661       1    3661       0       0       0       0       1    3661    3661       1 java/TimeZone_md.c:294
   4144 18121712    4144 18121712     420 1836660     420 1836660     2    8746    4373       1 java/UnixFileSystem_md.c:373
     10     124      10     124       0       0       0       0       2      55      51       1 java/jni_util.c:874
      2   80797       2   80797       0       0       0       0       1   64413   64413       2 java/io_util.c:102
      1      52       1      52       0       0       0       0       1      52      52       1 jli/java.c:2472
      2    1872       1     264       0       0       0       0       2    1872    1608       2 net/linux_close.c:135
      9     288       9     288       0       0       0       0       2      64      32       1 net/Inet6AddressImpl.c:280
  99524 3260992980 99524 3260992980 10514 344503782  10515 344536549  1   32767   32767       1 net/SocketInputStream.c:93
      3      24       3      24       0       0       1       8       2      16       8       1 net/linux_close.c:276
    201    4824       0       0       0       0       0       0     201    4824      24       1 net/linux_close.c:149
    311 1003152     261  496080       0       0      68  142128     119  651040  261360      45 zip/zip_util.c:655
    311   31100     261   26100       0       0      68    6800     119   11900     100       1 zip/zip_util.c:230
    243   15552     222   14208       0       0      85    5440     160   10240      64       1 zip/Inflater.c:61
      1      64       1      64       0       0       0       0       1      64      64       1 zip/Deflater.c:76
    146    7592     123    6396       3     156      74    3848      97    5044      52       1 zip/zip_util_md.c:75
   3242 1443289    3241 1439991      25    4000      92  252856      71  262264    8192     679 zip/zip_util.c:917
    311  125140     261   61724       0       0      68   17856     119   81500   32668      45 zip/zip_util.c:657
    146   37376     123   31488       3     768      74   18944      97   24832     256       1 zip/zip_util_md.c:132
For more information about setting -Dcom.ibm.dbgmalloc=true, see Miscellaneous system property command-line options.

For more information about the -Xcheck:memory option, see -Xcheck:memory in the OpenJ9 user documentation.