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 }
|