changeset 78:f69f4c3fa113

Make LRUFragger runnable with 100 GB heap
author shade
date Fri, 22 Sep 2017 23:51:32 +0200
parents b653734241e8
children e08d29090857
files src/main/java/org/openjdk/gcbench/fragger/LRUFragger.java
diffstat 1 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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<String, Result> 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) {