# HG changeset patch # User shade # Date 1506117092 -7200 # Node ID f69f4c3fa113ae952927bdf46743de30995138ce # Parent b653734241e897b824cdfd47f79fa54937055244 Make LRUFragger runnable with 100 GB heap diff -r b653734241e8 -r f69f4c3fa113 src/main/java/org/openjdk/gcbench/fragger/LRUFragger.java --- a/src/main/java/org/openjdk/gcbench/fragger/LRUFragger.java Fri May 12 11:11:43 2017 +0200 +++ b/src/main/java/org/openjdk/gcbench/fragger/LRUFragger.java Fri Sep 22 23:51:32 2017 +0200 @@ -28,6 +28,8 @@ @State(Scope.Benchmark) public class LRUFragger { + static final int PAYLOAD_SIZE = 4096; + @Param({"1000"}) int size; @@ -44,7 +46,7 @@ }; keyCount = (int) (size * (1D / 0.8D)); // 80% hit rate for (int c = 0; c < size; c++) { - cache.put("Key " + c, new byte[1000]); + cache.put("Key " + c, new byte[PAYLOAD_SIZE]); } } @@ -54,7 +56,7 @@ Object k = "Key " + idx; Object o = cache.get(k); if (o == null) { - o = new byte[1000]; + o = new byte[PAYLOAD_SIZE]; cache.put(k, o); } return o; @@ -63,21 +65,21 @@ public static void main(String... args) throws RunnerException { Options parent = new OptionsBuilder() .detectJvmArgs() - .jvmArgsAppend("-Xmx16g", "-Xms16g", "-XX:MaxGCPauseMillis=10") + .jvmArgsAppend("-Xmx100g", "-Xms100g", "-XX:MaxGCPauseMillis=10", "-XX:+AlwaysPreTouch") .include(LRUFragger.class.getCanonicalName()) .verbosity(VerboseMode.SILENT) .addProfiler(SafepointsProfiler.class) .warmupIterations(5) .warmupTime(TimeValue.seconds(10)) .measurementIterations(5) + .measurementTime(TimeValue.seconds(1)) .measurementTime(TimeValue.seconds(10)) .build(); PrintStream pw = System.out; - Sequence sizeSeq = Sequence.steps(0, 15_000_000, 20); + Sequence sizeSeq = Sequence.steps(0, 23_000_000, 10); -// for (String gc : new String[]{"-XX:+UseShenandoahGC"}) { for (String gc : new String[]{"-XX:+UseParallelOldGC", "-XX:+UseG1GC", "-XX:+UseConcMarkSweepGC", "-XX:+UseShenandoahGC"}) { for (Object size : sizeSeq) { if (size.toString().equals("0")) continue; @@ -93,7 +95,7 @@ Result pr = res.getPrimaryResult(); Map sec = res.getSecondaryResults(); - pw.printf("%10s, %30s, %10.3f, %10.3f, %5.0f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f%n", + pw.printf("%10s, %30s, %10.3f, %10.3f, %5.0f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f, %10.3f%n", size.toString(), gc, @@ -107,13 +109,12 @@ sec.get("·safepoints.pause.avg").getScore(), sec.get("·safepoints.pause.p0.00").getScore(), - sec.get("·safepoints.pause.p0.01").getScore(), - sec.get("·safepoints.pause.p0.05").getScore(), - sec.get("·safepoints.pause.p0.10").getScore(), sec.get("·safepoints.pause.p0.50").getScore(), sec.get("·safepoints.pause.p0.90").getScore(), sec.get("·safepoints.pause.p0.95").getScore(), sec.get("·safepoints.pause.p0.99").getScore(), + sec.get("·safepoints.pause.p0.999").getScore(), + sec.get("·safepoints.pause.p0.9999").getScore(), sec.get("·safepoints.pause.p1.00").getScore() ); } catch (RunnerException e) {