< prev index next >

test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java

Print this page

108   public static void checkCompressedOopsErgo(String[] gcflags) throws Exception {
109     long maxHeapForCompressedOops = getMaxHeapForCompressedOops(gcflags);
110 
111     checkUseCompressedOops(gcflags, maxHeapForCompressedOops, true);
112     checkUseCompressedOops(gcflags, maxHeapForCompressedOops - 1, true);
113     checkUseCompressedOops(gcflags, maxHeapForCompressedOops + 1, false);
114 
115     // the use of HeapBaseMinAddress should not change the outcome
116     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops, true);
117     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops - 1, true);
118     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops + 1, false);
119 
120     // use a different object alignment
121     maxHeapForCompressedOops = getMaxHeapForCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"));
122 
123     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops, true);
124     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops - 1, true);
125     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops + 1, false);
126 
127     // use a different CompressedClassSpaceSize
128     String compressedClassSpaceSizeArg = "-XX:CompressedClassSpaceSize=" + 2 * getCompressedClassSpaceSize();
129     maxHeapForCompressedOops = getMaxHeapForCompressedOops(join(gcflags, compressedClassSpaceSizeArg));
130 
131     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops, true);
132     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops - 1, true);
133     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops + 1, false);
134   }
135 
136   private static void checkUseCompressedOops(String[] args, long heapsize, boolean expectUseCompressedOops) throws Exception {
137      ArrayList<String> finalargs = new ArrayList<String>();
138      finalargs.addAll(Arrays.asList(args));
139      finalargs.add("-Xmx" + heapsize);
140      finalargs.add("-XX:+PrintFlagsFinal");
141      finalargs.add("-version");
142 
143      String output = expectValid(finalargs.toArray(new String[0]));
144 
145      boolean actualUseCompressedOops = getFlagBoolValue(" UseCompressedOops", output);
146 
147      Asserts.assertEQ(expectUseCompressedOops, actualUseCompressedOops);
148   }

108   public static void checkCompressedOopsErgo(String[] gcflags) throws Exception {
109     long maxHeapForCompressedOops = getMaxHeapForCompressedOops(gcflags);
110 
111     checkUseCompressedOops(gcflags, maxHeapForCompressedOops, true);
112     checkUseCompressedOops(gcflags, maxHeapForCompressedOops - 1, true);
113     checkUseCompressedOops(gcflags, maxHeapForCompressedOops + 1, false);
114 
115     // the use of HeapBaseMinAddress should not change the outcome
116     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops, true);
117     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops - 1, true);
118     checkUseCompressedOops(join(gcflags, "-XX:HeapBaseMinAddress=32G"), maxHeapForCompressedOops + 1, false);
119 
120     // use a different object alignment
121     maxHeapForCompressedOops = getMaxHeapForCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"));
122 
123     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops, true);
124     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops - 1, true);
125     checkUseCompressedOops(join(gcflags, "-XX:ObjectAlignmentInBytes=16"), maxHeapForCompressedOops + 1, false);
126 
127     // use a different CompressedClassSpaceSize
128     String compressedClassSpaceSizeArg = "-XX:CompressedClassSpaceSize=" + getCompressedClassSpaceSize() / 2;
129     maxHeapForCompressedOops = getMaxHeapForCompressedOops(join(gcflags, compressedClassSpaceSizeArg));
130 
131     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops, true);
132     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops - 1, true);
133     checkUseCompressedOops(join(gcflags, compressedClassSpaceSizeArg), maxHeapForCompressedOops + 1, false);
134   }
135 
136   private static void checkUseCompressedOops(String[] args, long heapsize, boolean expectUseCompressedOops) throws Exception {
137      ArrayList<String> finalargs = new ArrayList<String>();
138      finalargs.addAll(Arrays.asList(args));
139      finalargs.add("-Xmx" + heapsize);
140      finalargs.add("-XX:+PrintFlagsFinal");
141      finalargs.add("-version");
142 
143      String output = expectValid(finalargs.toArray(new String[0]));
144 
145      boolean actualUseCompressedOops = getFlagBoolValue(" UseCompressedOops", output);
146 
147      Asserts.assertEQ(expectUseCompressedOops, actualUseCompressedOops);
148   }
< prev index next >