Mercurial > hg > truffle
annotate test/gc/metaspace/TestMetaspaceMemoryPool.java @ 18060:b207affc0618
Merge
author | asaha |
---|---|
date | Tue, 03 Jun 2014 21:36:53 -0700 |
parents | 73d0d0218068 |
children |
rev | line source |
---|---|
11039 | 1 /* |
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. | |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
22 */ | |
23 | |
24 import java.util.List; | |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
25 import java.lang.management.*; |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
26 import com.oracle.java.testlibrary.*; |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
27 import static com.oracle.java.testlibrary.Asserts.*; |
11039 | 28 |
29 /* @test TestMetaspaceMemoryPool | |
30 * @bug 8000754 | |
31 * @summary Tests that a MemoryPoolMXBeans is created for metaspace and that a | |
32 * MemoryManagerMXBean is created. | |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
33 * @library /testlibrary |
11039 | 34 * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops TestMetaspaceMemoryPool |
35 * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:MaxMetaspaceSize=60m TestMetaspaceMemoryPool | |
12226
7944aba7ba41
8015107: NPG: Use consistent naming for metaspace concepts
ehelin
parents:
11039
diff
changeset
|
36 * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers TestMetaspaceMemoryPool |
7944aba7ba41
8015107: NPG: Use consistent naming for metaspace concepts
ehelin
parents:
11039
diff
changeset
|
37 * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:CompressedClassSpaceSize=60m TestMetaspaceMemoryPool |
11039 | 38 */ |
39 public class TestMetaspaceMemoryPool { | |
40 public static void main(String[] args) { | |
41 verifyThatMetaspaceMemoryManagerExists(); | |
42 | |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
43 boolean isMetaspaceMaxDefined = InputArguments.containsPrefix("-XX:MaxMetaspaceSize"); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
44 verifyMemoryPool(getMemoryPool("Metaspace"), isMetaspaceMaxDefined); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
45 |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
46 if (Platform.is64bit()) { |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
47 if (InputArguments.contains("-XX:+UseCompressedOops")) { |
11039 | 48 MemoryPoolMXBean cksPool = getMemoryPool("Compressed Class Space"); |
49 verifyMemoryPool(cksPool, true); | |
50 } | |
51 } | |
52 } | |
53 | |
54 private static void verifyThatMetaspaceMemoryManagerExists() { | |
55 List<MemoryManagerMXBean> managers = ManagementFactory.getMemoryManagerMXBeans(); | |
56 for (MemoryManagerMXBean manager : managers) { | |
57 if (manager.getName().equals("Metaspace Manager")) { | |
58 return; | |
59 } | |
60 } | |
61 | |
62 throw new RuntimeException("Expected to find a metaspace memory manager"); | |
63 } | |
64 | |
65 private static MemoryPoolMXBean getMemoryPool(String name) { | |
66 List<MemoryPoolMXBean> pools = ManagementFactory.getMemoryPoolMXBeans(); | |
67 for (MemoryPoolMXBean pool : pools) { | |
68 if (pool.getName().equals(name)) { | |
69 return pool; | |
70 } | |
71 } | |
72 | |
73 throw new RuntimeException("Expected to find a memory pool with name " + name); | |
74 } | |
75 | |
76 private static void verifyMemoryPool(MemoryPoolMXBean pool, boolean isMaxDefined) { | |
77 MemoryUsage mu = pool.getUsage(); | |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
78 long init = mu.getInit(); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
79 long used = mu.getUsed(); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
80 long committed = mu.getCommitted(); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
81 long max = mu.getMax(); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
82 |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
83 assertGTE(init, 0L); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
84 assertGTE(used, init); |
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
85 assertGTE(committed, used); |
11039 | 86 |
87 if (isMaxDefined) { | |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
88 assertGTE(max, committed); |
11039 | 89 } else { |
12248
73d0d0218068
8024718: Metaspace performance counters and memory pools should report the same data
ehelin
parents:
12226
diff
changeset
|
90 assertEQ(max, -1L); |
11039 | 91 } |
92 } | |
93 } |