< prev index next >

test/hotspot/jtreg/gc/shenandoah/mxbeans/TestMemoryMXBeans.java

Print this page
rev 53841 : 8219524: Shenandoah misreports "committed" size in MemoryMXBean
Reviewed-by: XXX


  35 
  36 import java.lang.management.*;
  37 import java.util.*;
  38 
  39 public class TestMemoryMXBeans {
  40 
  41     public static void main(String[] args) throws Exception {
  42         if (args.length < 2) {
  43             throw new IllegalStateException("Should provide expected heap sizes");
  44         }
  45 
  46         long initSize = 1L * Integer.parseInt(args[0]) * 1024 * 1024;
  47         long maxSize  = 1L * Integer.parseInt(args[1]) * 1024 * 1024;
  48 
  49         testMemoryBean(initSize, maxSize);
  50     }
  51 
  52     public static void testMemoryBean(long initSize, long maxSize) {
  53         MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
  54         long heapInit = memoryMXBean.getHeapMemoryUsage().getInit();

  55         long heapMax = memoryMXBean.getHeapMemoryUsage().getMax();
  56         long nonHeapInit = memoryMXBean.getNonHeapMemoryUsage().getInit();

  57         long nonHeapMax = memoryMXBean.getNonHeapMemoryUsage().getMax();
  58 
  59         if (initSize > 0 && heapInit != initSize) {
  60             throw new IllegalStateException("Init heap size is wrong: " + heapInit + " vs " + initSize);
  61         }
  62         if (maxSize > 0 && heapMax != maxSize) {
  63             throw new IllegalStateException("Max heap size is wrong: " + heapMax + " vs " + maxSize);




  64         }
  65     }
  66 }


  35 
  36 import java.lang.management.*;
  37 import java.util.*;
  38 
  39 public class TestMemoryMXBeans {
  40 
  41     public static void main(String[] args) throws Exception {
  42         if (args.length < 2) {
  43             throw new IllegalStateException("Should provide expected heap sizes");
  44         }
  45 
  46         long initSize = 1L * Integer.parseInt(args[0]) * 1024 * 1024;
  47         long maxSize  = 1L * Integer.parseInt(args[1]) * 1024 * 1024;
  48 
  49         testMemoryBean(initSize, maxSize);
  50     }
  51 
  52     public static void testMemoryBean(long initSize, long maxSize) {
  53         MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
  54         long heapInit = memoryMXBean.getHeapMemoryUsage().getInit();
  55         long heapCommitted = memoryMXBean.getHeapMemoryUsage().getCommitted();
  56         long heapMax = memoryMXBean.getHeapMemoryUsage().getMax();
  57         long nonHeapInit = memoryMXBean.getNonHeapMemoryUsage().getInit();
  58         long nonHeapCommitted = memoryMXBean.getNonHeapMemoryUsage().getCommitted();
  59         long nonHeapMax = memoryMXBean.getNonHeapMemoryUsage().getMax();
  60 
  61         if (initSize > 0 && heapInit != initSize) {
  62             throw new IllegalStateException("Init heap size is wrong: " + heapInit + " vs " + initSize);
  63         }
  64         if (maxSize > 0 && heapMax != maxSize) {
  65             throw new IllegalStateException("Max heap size is wrong: " + heapMax + " vs " + maxSize);
  66         }
  67         if (initSize > 0 && maxSize > 0 && initSize != maxSize && heapCommitted == heapMax) {
  68             throw new IllegalStateException("Init committed heap size is wrong: " + heapCommitted +
  69                                             " (init: " + initSize + ", max: " + maxSize + ")");
  70         }
  71     }
  72 }
< prev index next >