Last active
May 19, 2020 00:29
-
-
Save retronym/8c49524b31f4a25d8cee38323c15fd91 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
➜ compiler-benchmark git:(topic/case-class-o-rama) time (for v in 2.12.11 2.12.12-bin-8d19363-SNAPSHOT; do echo $v; sbt clean 'set scalaVersion in compilation := "'$v'"' 'hot -psource=scalap -prof gc -wi 3 -i 3 -f 2' ; done) | |
2.12.11 | |
[info] Loading settings for project global-plugins from idea.sbt,dirtymoney.sbt,metals.sbt,gpg.sbt ... | |
[info] Loading global plugins from /Users/jz/.sbt/1.0/plugins | |
[info] Loading settings for project compiler-benchmark-build from plugins.sbt,build.sbt ... | |
[info] Loading project definition from /Users/jz/code/compiler-benchmark/project | |
[info] Loading settings for project compiler-benchmark from build.sbt ... | |
[info] Set current project to compiler-benchmark (in build file:/Users/jz/code/compiler-benchmark/) | |
[success] Total time: 0 s, completed 19/05/2020 10:21:18 AM | |
[info] Defining compilation / scalaVersion | |
[info] The new value will be used by compilation / Compile / compileBinaryFileInputs, compilation / Compile / compileSourceFileInputs and 37 others. | |
[info] Run `last` for details. | |
[info] Reapplying settings... | |
[info] Set current project to compiler-benchmark (in build file:/Users/jz/code/compiler-benchmark/) | |
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. | |
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. | |
[info] Compiling 9 Java sources to /Users/jz/code/compiler-benchmark/infrastructure/target/classes ... | |
[warn] Multiple main classes detected. Run 'show discoveredMainClasses' to see the list | |
[info] Compiling 4 Scala sources and 3 Java sources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes ... | |
[warn] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/HotSbtBenchmark.scala:7:36: imported `Mode' is permanently hidden by definition of value Mode in package nsc | |
[warn] import org.openjdk.jmh.annotations.Mode | |
[warn] ^ | |
[warn] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/BenchmarkUtils.scala:50:62: match may not be exhaustive. | |
[warn] It would fail on the following input: Nil | |
[warn] val (cond, expr) = trimmedLine.split(" ").toList.filter(_.nonEmpty) match { | |
[warn] ^ | |
[warn] two warnings found | |
[info] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/JavacBenchmark.java: Some input files use unchecked or unsafe operations. | |
[info] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/JavacBenchmark.java: Recompile with -Xlint:unchecked for details. | |
[info] Compiling 1 Scala source to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/test-classes ... | |
Processing 24 classes from /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes with "reflection" generator | |
Writing out Java source to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/src_managed/jmh and resources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/resource_managed/jmh | |
[info] Compiling 25 Java sources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes ... | |
[info] running (fork) scala.bench.ScalacBenchmarkRunner HotScalacBenchmark -foe true -psource=scalap -prof gc -wi 3 -i 3 -f 2 | |
[info] # JMH version: 1.21 | |
[info] # VM version: JDK 1.8.0_172, Java HotSpot(TM) 64-Bit Server VM, 25.172-b11 | |
[info] # VM invoker: /Users/jz/.jabba/jdk/1.8.172/Contents/Home/jre/bin/java | |
[info] # VM options: -Xms2G -Xmx2G -Xss2M | |
[info] # Warmup: 3 iterations, 10 s each | |
[info] # Measurement: 3 iterations, 10 s each | |
[info] # Timeout: 10 min per iteration | |
[info] # Threads: 1 thread, will synchronize iterations | |
[info] # Benchmark mode: Sampling time | |
[info] # Benchmark: scala.tools.nsc.HotScalacBenchmark.compile | |
[info] # Parameters: (corpusPath = ../corpus, corpusVersion = a8c43dc, extraArgs = , resident = false, scalaVersion = 2.12.11, source = scalap) | |
[info] # Run progress: 0.00% complete, ETA 00:02:00 | |
[info] # Fork: 1 of 2 | |
[info] # Warmup Iteration 1: 5551.161 ms/op | |
[info] # Warmup Iteration 2: 1347.944 ±(99.9%) 587.480 ms/op | |
[info] # Warmup Iteration 3: 864.114 ±(99.9%) 103.148 ms/op | |
[info] Iteration 1: 768.981 ±(99.9%) 47.364 ms/op | |
[info] compile·p0.00: 707.789 ms/op | |
[info] compile·p0.50: 756.023 ms/op | |
[info] compile·p0.90: 828.899 ms/op | |
[info] compile·p0.95: 831.521 ms/op | |
[info] compile·p0.99: 831.521 ms/op | |
[info] compile·p0.999: 831.521 ms/op | |
[info] compile·p0.9999: 831.521 ms/op | |
[info] compile·p1.00: 831.521 ms/op | |
[info] ·gc.alloc.rate: 255.865 MB/sec | |
[info] ·gc.alloc.rate.norm: 216117365.143 B/op | |
[info] ·gc.churn.PS_Eden_Space: 290.051 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 244992292.571 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 1.466 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 1237869.143 B/op | |
[info] ·gc.count: 6.000 counts | |
[info] ·gc.time: 123.000 ms | |
[info] Iteration 2: 733.179 ±(99.9%) 44.543 ms/op | |
[info] compile·p0.00: 691.012 ms/op | |
[info] compile·p0.50: 727.187 ms/op | |
[info] compile·p0.90: 804.258 ms/op | |
[info] compile·p0.95: 824.181 ms/op | |
[info] compile·p0.99: 824.181 ms/op | |
[info] compile·p0.999: 824.181 ms/op | |
[info] compile·p0.9999: 824.181 ms/op | |
[info] compile·p1.00: 824.181 ms/op | |
[info] ·gc.alloc.rate: 267.173 MB/sec | |
[info] ·gc.alloc.rate.norm: 215671142.857 B/op | |
[info] ·gc.churn.PS_Eden_Space: 253.810 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 204884260.571 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 3.768 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 3041882.286 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 88.000 ms | |
[info] Iteration 3: 702.826 ±(99.9%) 35.270 ms/op | |
[info] compile·p0.00: 667.943 ms/op | |
[info] compile·p0.50: 689.963 ms/op | |
[info] compile·p0.90: 762.315 ms/op | |
[info] compile·p0.95: 765.460 ms/op | |
[info] compile·p0.99: 765.460 ms/op | |
[info] compile·p0.999: 765.460 ms/op | |
[info] compile·p0.9999: 765.460 ms/op | |
[info] compile·p1.00: 765.460 ms/op | |
[info] ·gc.alloc.rate: 278.465 MB/sec | |
[info] ·gc.alloc.rate.norm: 215458264.533 B/op | |
[info] ·gc.churn.PS_Eden_Space: 295.527 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 228659473.067 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 2.896 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 2240900.267 B/op | |
[info] ·gc.count: 6.000 counts | |
[info] ·gc.time: 67.000 ms | |
[info] # Run progress: 50.00% complete, ETA 00:01:07 | |
[info] # Fork: 2 of 2 | |
[info] # Warmup Iteration 1: 5567.939 ms/op | |
[info] # Warmup Iteration 2: 1318.584 ±(99.9%) 587.875 ms/op | |
[info] # Warmup Iteration 3: 877.396 ±(99.9%) 95.319 ms/op | |
[info] Iteration 1: 773.400 ±(99.9%) 66.202 ms/op | |
[info] compile·p0.00: 729.809 ms/op | |
[info] compile·p0.50: 756.023 ms/op | |
[info] compile·p0.90: 886.047 ms/op | |
[info] compile·p0.95: 958.398 ms/op | |
[info] compile·p0.99: 958.398 ms/op | |
[info] compile·p0.999: 958.398 ms/op | |
[info] compile·p0.9999: 958.398 ms/op | |
[info] compile·p1.00: 958.398 ms/op | |
[info] ·gc.alloc.rate: 255.892 MB/sec | |
[info] ·gc.alloc.rate.norm: 217247217.143 B/op | |
[info] ·gc.churn.PS_Eden_Space: 235.331 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 199791177.143 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 2.146 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 1822031.429 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 99.000 ms | |
[info] Iteration 2: 731.756 ±(99.9%) 84.927 ms/op | |
[info] compile·p0.00: 677.380 ms/op | |
[info] compile·p0.50: 714.080 ms/op | |
[info] compile·p0.90: 868.745 ms/op | |
[info] compile·p0.95: 981.467 ms/op | |
[info] compile·p0.99: 981.467 ms/op | |
[info] compile·p0.999: 981.467 ms/op | |
[info] compile·p0.9999: 981.467 ms/op | |
[info] compile·p1.00: 981.467 ms/op | |
[info] ·gc.alloc.rate: 269.289 MB/sec | |
[info] ·gc.alloc.rate.norm: 216925140.571 B/op | |
[info] ·gc.churn.PS_Eden_Space: 250.529 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 201813430.857 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 3.120 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 2513531.429 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 77.000 ms | |
[info] Iteration 3: 696.954 ±(99.9%) 35.801 ms/op | |
[info] compile·p0.00: 660.603 ms/op | |
[info] compile·p0.50: 681.574 ms/op | |
[info] compile·p0.90: 750.780 ms/op | |
[info] compile·p0.95: 763.363 ms/op | |
[info] compile·p0.99: 763.363 ms/op | |
[info] compile·p0.999: 763.363 ms/op | |
[info] compile·p0.9999: 763.363 ms/op | |
[info] compile·p1.00: 763.363 ms/op | |
[info] ·gc.alloc.rate: 282.817 MB/sec | |
[info] ·gc.alloc.rate.norm: 217312772.267 B/op | |
[info] ·gc.churn.PS_Eden_Space: 295.582 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 227121561.600 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 2.682 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 2060825.067 B/op | |
[info] ·gc.count: 6.000 counts | |
[info] ·gc.time: 64.000 ms | |
[info] Result "scala.tools.nsc.HotScalacBenchmark.compile": | |
[info] N = 86 | |
[info] mean = 733.711 ±(99.9%) 20.589 ms/op | |
[info] Histogram, ms/op: | |
[info] [ 600.000, 625.000) = 0 | |
[info] [ 625.000, 650.000) = 0 | |
[info] [ 650.000, 675.000) = 7 | |
[info] [ 675.000, 700.000) = 20 | |
[info] [ 700.000, 725.000) = 13 | |
[info] [ 725.000, 750.000) = 20 | |
[info] [ 750.000, 775.000) = 13 | |
[info] [ 775.000, 800.000) = 5 | |
[info] [ 800.000, 825.000) = 4 | |
[info] [ 825.000, 850.000) = 2 | |
[info] [ 850.000, 875.000) = 0 | |
[info] [ 875.000, 900.000) = 0 | |
[info] [ 900.000, 925.000) = 0 | |
[info] [ 925.000, 950.000) = 0 | |
[info] [ 950.000, 975.000) = 1 | |
[info] Percentiles, ms/op: | |
[info] p(0.0000) = 660.603 ms/op | |
[info] p(50.0000) = 730.333 ms/op | |
[info] p(90.0000) = 797.547 ms/op | |
[info] p(95.0000) = 825.544 ms/op | |
[info] p(99.0000) = 981.467 ms/op | |
[info] p(99.9000) = 981.467 ms/op | |
[info] p(99.9900) = 981.467 ms/op | |
[info] p(99.9990) = 981.467 ms/op | |
[info] p(99.9999) = 981.467 ms/op | |
[info] p(100.0000) = 981.467 ms/op | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.alloc.rate": | |
[info] 268.250 ±(99.9%) 31.349 MB/sec [Average] | |
[info] (min, avg, max) = (255.865, 268.250, 282.817), stdev = 11.179 | |
[info] CI (99.9%): [236.901, 299.599] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.alloc.rate.norm": | |
[info] 216455317.086 ±(99.9%) 2280313.792 B/op [Average] | |
[info] (min, avg, max) = (215458264.533, 216455317.086, 217312772.267), stdev = 813181.865 | |
[info] CI (99.9%): [214175003.294, 218735630.877] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space": | |
[info] 270.138 ±(99.9%) 74.732 MB/sec [Average] | |
[info] (min, avg, max) = (235.331, 270.138, 295.582), stdev = 26.650 | |
[info] CI (99.9%): [195.406, 344.870] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space.norm": | |
[info] 217877032.635 ±(99.9%) 51568212.518 B/op [Average] | |
[info] (min, avg, max) = (199791177.143, 217877032.635, 244992292.571), stdev = 18389721.345 | |
[info] CI (99.9%): [166308820.117, 269445245.153] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space": | |
[info] 2.680 ±(99.9%) 2.238 MB/sec [Average] | |
[info] (min, avg, max) = (1.466, 2.680, 3.768), stdev = 0.798 | |
[info] CI (99.9%): [0.442, 4.918] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space.norm": | |
[info] 2152839.937 ±(99.9%) 1721013.185 B/op [Average] | |
[info] (min, avg, max) = (1237869.143, 2152839.937, 3041882.286), stdev = 613729.881 | |
[info] CI (99.9%): [431826.751, 3873853.122] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.count": | |
[info] 33.000 ±(99.9%) 0.001 counts [Sum] | |
[info] (min, avg, max) = (5.000, 5.500, 6.000), stdev = 0.548 | |
[info] CI (99.9%): [33.000, 33.000] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.time": | |
[info] 518.000 ±(99.9%) 0.001 ms [Sum] | |
[info] (min, avg, max) = (64.000, 86.333, 123.000), stdev = 22.214 | |
[info] CI (99.9%): [518.000, 518.000] (assumes normal distribution) | |
[info] # Run complete. Total time: 00:02:14 | |
[info] REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on | |
[info] why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial | |
[info] experiments, perform baseline and negative tests that provide experimental control, make sure | |
[info] the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. | |
[info] Do not assume the numbers tell you what you want them to tell. | |
[info] Benchmark (corpusPath) (corpusVersion) (extraArgs) (resident) (scalaVersion) (source) Mode Cnt Score Error Units | |
[info] HotScalacBenchmark.compile ../corpus a8c43dc false 2.12.11 scalap sample 86 733.711 ± 20.589 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.00 ../corpus a8c43dc false 2.12.11 scalap sample 660.603 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.50 ../corpus a8c43dc false 2.12.11 scalap sample 730.333 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.90 ../corpus a8c43dc false 2.12.11 scalap sample 797.547 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.95 ../corpus a8c43dc false 2.12.11 scalap sample 825.544 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.99 ../corpus a8c43dc false 2.12.11 scalap sample 981.467 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.999 ../corpus a8c43dc false 2.12.11 scalap sample 981.467 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.9999 ../corpus a8c43dc false 2.12.11 scalap sample 981.467 ms/op | |
[info] HotScalacBenchmark.compile:compile·p1.00 ../corpus a8c43dc false 2.12.11 scalap sample 981.467 ms/op | |
[info] HotScalacBenchmark.compile:·gc.alloc.rate ../corpus a8c43dc false 2.12.11 scalap sample 6 268.250 ± 31.349 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.alloc.rate.norm ../corpus a8c43dc false 2.12.11 scalap sample 6 216455317.086 ± 2280313.792 B/op | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space ../corpus a8c43dc false 2.12.11 scalap sample 6 270.138 ± 74.732 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space.norm ../corpus a8c43dc false 2.12.11 scalap sample 6 217877032.635 ± 51568212.518 B/op | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space ../corpus a8c43dc false 2.12.11 scalap sample 6 2.680 ± 2.238 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space.norm ../corpus a8c43dc false 2.12.11 scalap sample 6 2152839.937 ± 1721013.185 B/op | |
[info] HotScalacBenchmark.compile:·gc.count ../corpus a8c43dc false 2.12.11 scalap sample 6 33.000 counts | |
[info] HotScalacBenchmark.compile:·gc.time ../corpus a8c43dc false 2.12.11 scalap sample 6 518.000 ms | |
[success] Total time: 145 s (02:25), completed 19/05/2020 10:23:44 AM | |
2.12.12-bin-8d19363-SNAPSHOT | |
[info] Loading settings for project global-plugins from idea.sbt,dirtymoney.sbt,metals.sbt,gpg.sbt ... | |
[info] Loading global plugins from /Users/jz/.sbt/1.0/plugins | |
[info] Loading settings for project compiler-benchmark-build from plugins.sbt,build.sbt ... | |
[info] Loading project definition from /Users/jz/code/compiler-benchmark/project | |
[info] Loading settings for project compiler-benchmark from build.sbt ... | |
[info] Set current project to compiler-benchmark (in build file:/Users/jz/code/compiler-benchmark/) | |
[success] Total time: 0 s, completed 19/05/2020 10:23:51 AM | |
[info] Defining compilation / scalaVersion | |
[info] The new value will be used by compilation / Compile / compileBinaryFileInputs, compilation / Compile / compileSourceFileInputs and 37 others. | |
[info] Run `last` for details. | |
[info] Reapplying settings... | |
[info] Set current project to compiler-benchmark (in build file:/Users/jz/code/compiler-benchmark/) | |
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. | |
[info] Updating | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-library/2.12.12-bin-8d19363-SNAPSHOT/maven-metadata.xml | |
100.0% [##########] 1.0 KiB (4.8 KiB / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-compiler/2.12.12-bin-8d19363-SNAPSHOT/maven-metadata.xml | |
100.0% [##########] 1.0 KiB (849 B / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-compiler/2.12.12-bin-8d19363-SNAPSHOT/scala-compiler-2.12.12-bin-8d19363-20200513.09… | |
100.0% [##########] 2.7 KiB (4.3 KiB / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-library/2.12.12-bin-8d19363-SNAPSHOT/scala-library-2.12.12-bin-8d19363-20200513.0950… | |
100.0% [##########] 1.6 KiB (315 B / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-reflect/2.12.12-bin-8d19363-SNAPSHOT/maven-metadata.xml | |
100.0% [##########] 1.0 KiB (5.4 KiB / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-reflect/2.12.12-bin-8d19363-SNAPSHOT/scala-reflect-2.12.12-bin-8d19363-20200513.0950… | |
100.0% [##########] 1.8 KiB (10.1 KiB / s) | |
[info] Resolved dependencies | |
[info] Fetching artifacts of | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-reflect/2.12.12-bin-8d19363-SNAPSHOT/scala-reflect-2.12.12-bin-8d19363-20200513.0950… | |
100.0% [##########] 3.5 MiB (962.1 KiB / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-compiler/2.12.12-bin-8d19363-SNAPSHOT/scala-compiler-2.12.12-bin-8d19363-20200513.09… | |
100.0% [##########] 10.0 MiB (2.0 MiB / s) | |
https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/org/scala-lang/scala-library/2.12.12-bin-8d19363-SNAPSHOT/scala-library-2.12.12-bin-8d19363-20200513.0950… | |
100.0% [##########] 5.2 MiB (742.2 KiB / s) | |
[info] Fetched artifacts of | |
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. | |
[info] Compiling 9 Java sources to /Users/jz/code/compiler-benchmark/infrastructure/target/classes ... | |
[warn] Multiple main classes detected. Run 'show discoveredMainClasses' to see the list | |
[info] Compiling 4 Scala sources and 3 Java sources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes ... | |
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.12-bin-8d19363-SNAPSHOT. Compiling... | |
[info] Compilation completed in 7.336s. | |
[warn] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/HotSbtBenchmark.scala:7:36: imported `Mode' is permanently hidden by definition of value Mode in package nsc | |
[warn] import org.openjdk.jmh.annotations.Mode | |
[warn] ^ | |
[warn] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/BenchmarkUtils.scala:50:62: match may not be exhaustive. | |
[warn] It would fail on the following input: Nil | |
[warn] val (cond, expr) = trimmedLine.split(" ").toList.filter(_.nonEmpty) match { | |
[warn] ^ | |
[warn] two warnings found | |
[info] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/JavacBenchmark.java: Some input files use unchecked or unsafe operations. | |
[info] /Users/jz/code/compiler-benchmark/compilation/src/main/scala/scala/tools/nsc/JavacBenchmark.java: Recompile with -Xlint:unchecked for details. | |
[info] Compiling 1 Scala source to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/test-classes ... | |
Processing 24 classes from /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes with "reflection" generator | |
Writing out Java source to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/src_managed/jmh and resources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/resource_managed/jmh | |
[info] Compiling 25 Java sources to /Users/jz/code/compiler-benchmark/compilation/target/scala-2.12/classes ... | |
[info] running (fork) scala.bench.ScalacBenchmarkRunner HotScalacBenchmark -foe true -psource=scalap -prof gc -wi 3 -i 3 -f 2 | |
[info] # JMH version: 1.21 | |
[info] # VM version: JDK 1.8.0_172, Java HotSpot(TM) 64-Bit Server VM, 25.172-b11 | |
[info] # VM invoker: /Users/jz/.jabba/jdk/1.8.172/Contents/Home/jre/bin/java | |
[info] # VM options: -Xms2G -Xmx2G -Xss2M | |
[info] # Warmup: 3 iterations, 10 s each | |
[info] # Measurement: 3 iterations, 10 s each | |
[info] # Timeout: 10 min per iteration | |
[info] # Threads: 1 thread, will synchronize iterations | |
[info] # Benchmark mode: Sampling time | |
[info] # Benchmark: scala.tools.nsc.HotScalacBenchmark.compile | |
[info] # Parameters: (corpusPath = ../corpus, corpusVersion = a8c43dc, extraArgs = , resident = false, scalaVersion = 2.12.12-bin-8d19363-SNAPSHOT, source = scalap) | |
[info] # Run progress: 0.00% complete, ETA 00:02:00 | |
[info] # Fork: 1 of 2 | |
[info] # Warmup Iteration 1: 5664.408 ms/op | |
[info] # Warmup Iteration 2: 1457.820 ±(99.9%) 663.928 ms/op | |
[info] # Warmup Iteration 3: 938.571 ±(99.9%) 134.048 ms/op | |
[info] Iteration 1: 806.355 ±(99.9%) 82.575 ms/op | |
[info] compile·p0.00: 749.732 ms/op | |
[info] compile·p0.50: 778.043 ms/op | |
[info] compile·p0.90: 952.946 ms/op | |
[info] compile·p0.95: 994.050 ms/op | |
[info] compile·p0.99: 994.050 ms/op | |
[info] compile·p0.999: 994.050 ms/op | |
[info] compile·p0.9999: 994.050 ms/op | |
[info] compile·p1.00: 994.050 ms/op | |
[info] ·gc.alloc.rate: 223.002 MB/sec | |
[info] ·gc.alloc.rate.norm: 197759326.154 B/op | |
[info] ·gc.churn.PS_Eden_Space: 195.918 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 173740977.231 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 1.578 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 1399284.308 B/op | |
[info] ·gc.count: 4.000 counts | |
[info] ·gc.time: 67.000 ms | |
[info] Iteration 2: 716.177 ±(99.9%) 32.217 ms/op | |
[info] compile·p0.00: 677.380 ms/op | |
[info] compile·p0.50: 720.372 ms/op | |
[info] compile·p0.90: 752.878 ms/op | |
[info] compile·p0.95: 758.120 ms/op | |
[info] compile·p0.99: 758.120 ms/op | |
[info] compile·p0.999: 758.120 ms/op | |
[info] compile·p0.9999: 758.120 ms/op | |
[info] compile·p1.00: 758.120 ms/op | |
[info] ·gc.alloc.rate: 249.957 MB/sec | |
[info] ·gc.alloc.rate.norm: 197302521.714 B/op | |
[info] ·gc.churn.PS_Eden_Space: 257.712 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 203423744.000 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 0.696 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 549492.000 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 109.000 ms | |
[info] Iteration 3: 697.303 ±(99.9%) 37.851 ms/op | |
[info] compile·p0.00: 659.554 ms/op | |
[info] compile·p0.50: 677.380 ms/op | |
[info] compile·p0.90: 747.635 ms/op | |
[info] compile·p0.95: 750.780 ms/op | |
[info] compile·p0.99: 750.780 ms/op | |
[info] compile·p0.999: 750.780 ms/op | |
[info] compile·p0.9999: 750.780 ms/op | |
[info] compile·p1.00: 750.780 ms/op | |
[info] ·gc.alloc.rate: 256.446 MB/sec | |
[info] ·gc.alloc.rate.norm: 197025428.267 B/op | |
[info] ·gc.churn.PS_Eden_Space: 245.303 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 188464059.733 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 2.931 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 2251699.200 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 62.000 ms | |
[info] # Run progress: 50.00% complete, ETA 00:01:06 | |
[info] # Fork: 2 of 2 | |
[info] # Warmup Iteration 1: 5234.491 ms/op | |
[info] # Warmup Iteration 2: 1716.868 ±(99.9%) 2397.516 ms/op | |
[info] # Warmup Iteration 3: 928.848 ±(99.9%) 169.490 ms/op | |
[info] Iteration 1: 763.588 ±(99.9%) 25.003 ms/op | |
[info] compile·p0.00: 720.372 ms/op | |
[info] compile·p0.50: 762.839 ms/op | |
[info] compile·p0.90: 799.539 ms/op | |
[info] compile·p0.95: 810.549 ms/op | |
[info] compile·p0.99: 810.549 ms/op | |
[info] compile·p0.999: 810.549 ms/op | |
[info] compile·p0.9999: 810.549 ms/op | |
[info] compile·p1.00: 810.549 ms/op | |
[info] ·gc.alloc.rate: 233.588 MB/sec | |
[info] ·gc.alloc.rate.norm: 196011016.000 B/op | |
[info] ·gc.churn.PS_Eden_Space: 210.557 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 176685056.000 B/op | |
[info] ·gc.count: 4.000 counts | |
[info] ·gc.time: 58.000 ms | |
[info] Iteration 2: 734.602 ±(99.9%) 25.772 ms/op | |
[info] compile·p0.00: 705.692 ms/op | |
[info] compile·p0.50: 734.527 ms/op | |
[info] compile·p0.90: 772.801 ms/op | |
[info] compile·p0.95: 794.821 ms/op | |
[info] compile·p0.99: 794.821 ms/op | |
[info] compile·p0.999: 794.821 ms/op | |
[info] compile·p0.9999: 794.821 ms/op | |
[info] compile·p1.00: 794.821 ms/op | |
[info] ·gc.alloc.rate: 240.499 MB/sec | |
[info] ·gc.alloc.rate.norm: 194555621.143 B/op | |
[info] ·gc.churn.PS_Eden_Space: 275.116 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 222560256.000 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 1.055 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 853826.286 B/op | |
[info] ·gc.count: 5.000 counts | |
[info] ·gc.time: 61.000 ms | |
[info] Iteration 3: 702.196 ±(99.9%) 35.191 ms/op | |
[info] compile·p0.00: 656.409 ms/op | |
[info] compile·p0.50: 702.546 ms/op | |
[info] compile·p0.90: 744.908 ms/op | |
[info] compile·p0.95: 758.120 ms/op | |
[info] compile·p0.99: 758.120 ms/op | |
[info] compile·p0.999: 758.120 ms/op | |
[info] compile·p0.9999: 758.120 ms/op | |
[info] compile·p1.00: 758.120 ms/op | |
[info] ·gc.alloc.rate: 251.097 MB/sec | |
[info] ·gc.alloc.rate.norm: 194303786.667 B/op | |
[info] ·gc.churn.PS_Eden_Space: 215.546 MB/sec | |
[info] ·gc.churn.PS_Eden_Space.norm: 166793489.067 B/op | |
[info] ·gc.churn.PS_Survivor_Space: 0.988 MB/sec | |
[info] ·gc.churn.PS_Survivor_Space.norm: 764699.733 B/op | |
[info] ·gc.count: 4.000 counts | |
[info] ·gc.time: 47.000 ms | |
[info] Result "scala.tools.nsc.HotScalacBenchmark.compile": | |
[info] N = 85 | |
[info] mean = 735.015 ±(99.9%) 19.506 ms/op | |
[info] Histogram, ms/op: | |
[info] [ 600.000, 625.000) = 0 | |
[info] [ 625.000, 650.000) = 0 | |
[info] [ 650.000, 675.000) = 10 | |
[info] [ 675.000, 700.000) = 13 | |
[info] [ 700.000, 725.000) = 10 | |
[info] [ 725.000, 750.000) = 25 | |
[info] [ 750.000, 775.000) = 15 | |
[info] [ 775.000, 800.000) = 6 | |
[info] [ 800.000, 825.000) = 3 | |
[info] [ 825.000, 850.000) = 1 | |
[info] [ 850.000, 875.000) = 0 | |
[info] [ 875.000, 900.000) = 1 | |
[info] [ 900.000, 925.000) = 0 | |
[info] [ 925.000, 950.000) = 0 | |
[info] [ 950.000, 975.000) = 0 | |
[info] Percentiles, ms/op: | |
[info] p(0.0000) = 656.409 ms/op | |
[info] p(50.0000) = 739.246 ms/op | |
[info] p(90.0000) = 788.949 ms/op | |
[info] p(95.0000) = 810.235 ms/op | |
[info] p(99.0000) = 994.050 ms/op | |
[info] p(99.9000) = 994.050 ms/op | |
[info] p(99.9900) = 994.050 ms/op | |
[info] p(99.9990) = 994.050 ms/op | |
[info] p(99.9999) = 994.050 ms/op | |
[info] p(100.0000) = 994.050 ms/op | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.alloc.rate": | |
[info] 242.432 ±(99.9%) 35.194 MB/sec [Average] | |
[info] (min, avg, max) = (223.002, 242.432, 256.446), stdev = 12.551 | |
[info] CI (99.9%): [207.238, 277.626] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.alloc.rate.norm": | |
[info] 196159616.657 ±(99.9%) 4093329.085 B/op [Average] | |
[info] (min, avg, max) = (194303786.667, 196159616.657, 197759326.154), stdev = 1459720.583 | |
[info] CI (99.9%): [192066287.572, 200252945.743] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space": | |
[info] 233.359 ±(99.9%) 86.144 MB/sec [Average] | |
[info] (min, avg, max) = (195.918, 233.359, 275.116), stdev = 30.720 | |
[info] CI (99.9%): [147.215, 319.502] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space.norm": | |
[info] 188611263.672 ±(99.9%) 58972526.370 B/op [Average] | |
[info] (min, avg, max) = (166793489.067, 188611263.672, 222560256.000), stdev = 21030170.991 | |
[info] CI (99.9%): [129638737.302, 247583790.042] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space": | |
[info] 1.208 ±(99.9%) 2.775 MB/sec [Average] | |
[info] (min, avg, max) = (≈ 0, 1.208, 2.931), stdev = 0.990 | |
[info] CI (99.9%): [≈ 0, 3.983] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space.norm": | |
[info] 969833.588 ±(99.9%) 2172261.832 B/op [Average] | |
[info] (min, avg, max) = (≈ 0, 969833.588, 2251699.200), stdev = 774649.495 | |
[info] CI (99.9%): [≈ 0, 3142095.420] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.count": | |
[info] 27.000 ±(99.9%) 0.001 counts [Sum] | |
[info] (min, avg, max) = (4.000, 4.500, 5.000), stdev = 0.548 | |
[info] CI (99.9%): [27.000, 27.000] (assumes normal distribution) | |
[info] Secondary result "scala.tools.nsc.HotScalacBenchmark.compile:·gc.time": | |
[info] 404.000 ±(99.9%) 0.001 ms [Sum] | |
[info] (min, avg, max) = (47.000, 67.333, 109.000), stdev = 21.472 | |
[info] CI (99.9%): [404.000, 404.000] (assumes normal distribution) | |
[info] # Run complete. Total time: 00:02:12 | |
[info] REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on | |
[info] why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial | |
[info] experiments, perform baseline and negative tests that provide experimental control, make sure | |
[info] the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. | |
[info] Do not assume the numbers tell you what you want them to tell. | |
[info] Benchmark (corpusPath) (corpusVersion) (extraArgs) (resident) (scalaVersion) (source) Mode Cnt Score Error Units | |
[info] HotScalacBenchmark.compile ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 85 735.015 ± 19.506 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.00 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 656.409 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.50 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 739.246 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.90 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 788.949 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.95 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 810.235 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.99 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 994.050 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.999 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 994.050 ms/op | |
[info] HotScalacBenchmark.compile:compile·p0.9999 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 994.050 ms/op | |
[info] HotScalacBenchmark.compile:compile·p1.00 ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 994.050 ms/op | |
[info] HotScalacBenchmark.compile:·gc.alloc.rate ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 242.432 ± 35.194 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.alloc.rate.norm ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 196159616.657 ± 4093329.085 B/op | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 233.359 ± 86.144 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Eden_Space.norm ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 188611263.672 ± 58972526.370 B/op | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 1.208 ± 2.775 MB/sec | |
[info] HotScalacBenchmark.compile:·gc.churn.PS_Survivor_Space.norm ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 969833.588 ± 2172261.832 B/op | |
[info] HotScalacBenchmark.compile:·gc.count ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 27.000 counts | |
[info] HotScalacBenchmark.compile:·gc.time ../corpus a8c43dc false 2.12.12-bin-8d19363-SNAPSHOT scalap sample 6 404.000 ms | |
[success] Total time: 168 s (02:48), completed 19/05/2020 10:26:41 AM | |
( for v in 2.12.11 2.12.12-bin-8d19363-SNAPSHOT; do; echo $v; sbt clean ; ; ) 816.32s user 26.54s system 255% cpu 5:30.51 total | |
➜ compiler-benchmark git:(topic/case-class-o-rama) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment