Skip to content
Snippets Groups Projects
Commit 3fe935f3 authored by Matt Bovel's avatar Matt Bovel
Browse files

Update benchmarks

parent 7d74507a
No related branches found
No related tags found
No related merge requests found
Showing
with 5239 additions and 3252 deletions
# 2. SumBenchmark
![](graphs/SumBenchmark-bar-h.svg)
from pathlib import Path
import json
import numpy as np
import pandas as pd
import plotly.express as px
from typing import Union, Literal
image_height = 500
def load_data(bench_suite):
for bench_file in Path(f"benchmarks/results").glob(f"*{bench_suite}*.json"):
(_, _, jvm, run) = bench_file.stem.split("-")
for data in json.loads(bench_file.read_bytes()):
benchmark = data["benchmark"].replace(
f"benchmarks.{bench_suite}.", "")
if "params" in data:
benchmark += "(" + ",".join(data["params"].values()) + ")"
for fork, times in enumerate(data["primaryMetric"]["rawData"]):
for time in times:
yield (jvm, benchmark, int(run), int(fork), time)
Mode = Union[Literal["bar"], Literal["strip"], Literal["box"]]
Orientation = Union[Literal["h"], Literal["v"]]
def make_bars_graph(bench_suite, mode: Mode, orientation: Orientation):
df = pd.DataFrame(
load_data(bench_suite),
columns=("jvm", "benchmark", "run", "fork", "time")
)
if mode == "bar":
df = df.drop(columns=["run", "fork"])
df = df.groupby(["jvm", "benchmark"])
df = df.agg([("median", np.median), ("min", np.min), ("max", np.max)])
df = df.reset_index()
df.columns = [' '.join(col).strip() for col in df.columns.values]
df["time error"] = df["time median"] - df["time min"]
df["time error minus"] = df["time max"] - df["time median"]
df = df.sort_values(by=["benchmark"], ascending=False)
args = {
"x" if orientation == "h" else "y": "time median" if mode == "bar" else "time",
"y" if orientation == "h" else "x": "benchmark",
"color": "jvm",
"orientation": orientation,
"color_discrete_sequence": px.colors.qualitative.Pastel1,
"template": "plotly_white"
}
if mode == "bar":
args |= {
"barmode": "group",
"error_x" if orientation == "h" else "error_y": "time error",
"error_x_minus" if orientation == "h" else "error_y_minus": "time error minus"
}
elif mode == "box":
args |= {
"points": "all"
}
fig = getattr(px, mode)(df, **args)
layout_args = {
"title": bench_suite,
"xaxis_title" if orientation == "h" else "yaxis_title": "Throughput [ops/s] (higher is better)",
"yaxis_title" if orientation == "h" else "xaxis_title": "Benchmark"
}
fig.update_layout(**layout_args)
fig.write_html(
f"benchmarks/graphs/{bench_suite}-{mode}-{orientation}.html",
include_plotlyjs='cdn'
)
fig.write_image(
f"benchmarks/graphs/{bench_suite}-{mode}-{orientation}.svg",
height=image_height,
width=image_height * 2
)
make_bars_graph("SumBenchmark", "bar", "h")
<html>
<head><meta charset="utf-8" /></head>
<body>
<div> <script type="text/javascript">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
<script src="https://cdn.plot.ly/plotly-2.18.2.min.js"></script> <div id="10634322-d41f-4f99-94b6-17f7cac19adf" class="plotly-graph-div" style="height:100%; width:100%;"></div> <script type="text/javascript"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("10634322-d41f-4f99-94b6-17f7cac19adf")) { Plotly.newPlot( "10634322-d41f-4f99-94b6-17f7cac19adf", [{"alignmentgroup":"True","error_x":{"array":[5613.2686526644175,6174.210259068932,4706.315514037044,1.6459329578829411,5394.380017108775,14146.414760825806,22067.424143686076,3917.2499280796037,21179.003524574277,24938.083565256267,49679.46402697748,378.49196267702064],"arrayminus":[3913.12529008009,4091.9599404481123,3660.936111252304,0.6813202956629176,3184.2505536694625,7119.062357919931,5801.463513401104,687.6400601965652,5876.251959587098,6890.388729189988,4701.53133729205,282.0100102601027]},"hovertemplate":"jvm=openjdk<br>time median=%{x}<br>benchmark=%{y}<extra></extra>","legendgroup":"openjdk","marker":{"color":"rgb(251,180,174)","pattern":{"shape":""}},"name":"openjdk","offsetgroup":"openjdk","orientation":"h","showlegend":true,"textposition":"auto","x":[45315.58529529883,45521.203034796345,44537.08919111741,10.609805628796668,22726.747018324204,406913.3590725606,407061.72847028746,47827.162047293605,431559.3102964834,431014.33726793865,432060.2223172805,21641.28839329363],"xaxis":"x","y":["bench11_listOptimizedForeachArgInlined","bench10_listOptimizedForeach","bench09_listForLoop","bench08_listForLoopIndex","bench07_listSumMethod","bench06_arrayOptimizedForeachArgInlined","bench05_arrayOptimizedForeach","bench04_arrayForLoop","bench03_arrayOptimizedForLoopIndex","bench02_arrayForLoopIndex","bench01_arrayWhileLoopIndex","bench00_arraySumMethod"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","error_x":{"array":[4266.860563841947,4093.0114752884692,5638.1595158803975,1.2251841412647675,1349.8747696371029,20793.12996840861,22392.942901500734,21955.981119379576,40295.71703249676,7790.97348393657,35275.228838189505,25545.746175856388],"arrayminus":[2474.575296408446,3857.075652931744,2457.17290268997,0.599175800269915,1186.4252950980372,10478.16784433223,9792.166822972766,30814.734332258522,35860.890141752025,2580.1585224950686,17711.530572651187,14765.581070801592]},"hovertemplate":"jvm=graal<br>time median=%{x}<br>benchmark=%{y}<extra></extra>","legendgroup":"graal","marker":{"color":"rgb(179,205,227)","pattern":{"shape":""}},"name":"graal","offsetgroup":"graal","orientation":"h","showlegend":true,"textposition":"auto","x":[45844.86075284566,44653.59171825756,45275.554487628906,10.645927787666222,30710.92289788997,403034.99899232574,403052.919295009,394804.0386813192,393035.525620139,191639.52828649094,404533.79531878344,390662.1737972727],"xaxis":"x","y":["bench11_listOptimizedForeachArgInlined","bench10_listOptimizedForeach","bench09_listForLoop","bench08_listForLoopIndex","bench07_listSumMethod","bench06_arrayOptimizedForeachArgInlined","bench05_arrayOptimizedForeach","bench04_arrayForLoop","bench03_arrayOptimizedForLoopIndex","bench02_arrayForLoopIndex","bench01_arrayWhileLoopIndex","bench00_arraySumMethod"],"yaxis":"y","type":"bar"}], {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmapgl":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmapgl"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Throughput [ops/s] (higher is better)"}},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Benchmark"}},"legend":{"title":{"text":"jvm"},"tracegroupgap":0},"margin":{"t":60},"barmode":"group","title":{"text":"SumBenchmark"}}, {"responsive": true} ) }; </script> </div>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
➜ ~/cs206-demos git:(main) ✗ sbt "clean; Jmh / run -w 2 -r 2 -f 3 -rf JSON -rff AppendBenchmarkAdopt.json AppendBenchmark"
[info] welcome to sbt 1.7.1 (AdoptOpenJDK Java 16)
[info] loading settings for project cs206-demos-build from plugins.sbt ...
[info] loading project definition from /Users/mbovel/cs206-demos/project
[info] loading settings for project cs206-demos from build.sbt ...
[info] set current project to cs206-demos (in build file:/Users/mbovel/cs206-demos/)
[success] Total time: 0 s, completed Feb 28, 2023, 7:16:56 PM
[info] compiling 7 Scala sources and 1 Java source to /Users/mbovel/cs206-demos/target/scala-3.2.0/classes ...
[warn] there was 1 deprecation warning; re-run with -deprecation for details
[warn] one warning found
[info] running org.openjdk.jmh.generators.bytecode.JmhBytecodeGenerator /Users/mbovel/cs206-demos/target/scala-3.2.0/classes /Users/mbovel/cs206-demos/target/scala-3.2.0/src_managed/jmh /Users/mbovel/cs206-demos/target/scala-3.2.0/resource_managed/jmh default
Processing 18 classes from /Users/mbovel/cs206-demos/target/scala-3.2.0/classes with "reflection" generator
Writing out Java source to /Users/mbovel/cs206-demos/target/scala-3.2.0/src_managed/jmh and resources to /Users/mbovel/cs206-demos/target/scala-3.2.0/resource_managed/jmh
[info] compiling 20 Java sources to /Users/mbovel/cs206-demos/target/scala-3.2.0/classes ...
[info] running (fork) org.openjdk.jmh.Main -w 2 -r 2 -f 3 -rf JSON -rff ListConcatResultsAdopt.json AppendBenchmark
[info] # JMH version: 1.36
[info] # VM version: JDK 16, OpenJDK 64-Bit Server VM, 16+36
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%252B36/OpenJDK16-jdk_x64_mac_hotspot_16_36.tar.gz/jdk-16+36/Contents/Home/bin/java
[info] # VM options: <none>
[info] # Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.append
[info] # Parameters: (seqType = List)
[info] # Run progress: 0.00% complete, ETA 00:04:00
[info] # Fork: 1 of 3
[info] # Warmup Iteration 1: 14755.325 ops/s
[info] # Warmup Iteration 2: 16665.832 ops/s
[info] # Warmup Iteration 3: 16615.734 ops/s
[info] # Warmup Iteration 4: 16821.710 ops/s
[info] # Warmup Iteration 5: 16821.106 ops/s
[info] Iteration 1: 16692.645 ops/s
[info] Iteration 2: 16846.950 ops/s
[info] Iteration 3: 16738.474 ops/s
[info] Iteration 4: 16747.085 ops/s
[info] Iteration 5: 16821.532 ops/s
[info] # Run progress: 8.33% complete, ETA 00:03:44
[info] # Fork: 2 of 3
[info] # Warmup Iteration 1: 14427.371 ops/s
[info] # Warmup Iteration 2: 16739.921 ops/s
[info] # Warmup Iteration 3: 16626.355 ops/s
[info] # Warmup Iteration 4: 16857.682 ops/s
[info] # Warmup Iteration 5: 16843.399 ops/s
[info] Iteration 1: 16747.762 ops/s
[info] Iteration 2: 16855.561 ops/s
[info] Iteration 3: 16753.608 ops/s
[info] Iteration 4: 16761.174 ops/s
[info] Iteration 5: 16837.203 ops/s
[info] # Run progress: 16.67% complete, ETA 00:03:23
[info] # Fork: 3 of 3
[info] # Warmup Iteration 1: 14546.561 ops/s
[info] # Warmup Iteration 2: 16661.193 ops/s
[info] # Warmup Iteration 3: 16580.200 ops/s
[info] # Warmup Iteration 4: 16784.866 ops/s
[info] # Warmup Iteration 5: 16774.882 ops/s
[info] Iteration 1: 16495.104 ops/s
[info] Iteration 2: 16735.675 ops/s
[info] Iteration 3: 16655.589 ops/s
[info] Iteration 4: 16647.306 ops/s
[info] Iteration 5: 16784.459 ops/s
[info] Result "benchmarks.AppendBenchmark.append":
[info] 16741.342 ±(99.9%) 99.608 ops/s [Average]
[info] (min, avg, max) = (16495.104, 16741.342, 16855.561), stdev = 93.173
[info] CI (99.9%): [16641.734, 16840.950] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 16, OpenJDK 64-Bit Server VM, 16+36
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%252B36/OpenJDK16-jdk_x64_mac_hotspot_16_36.tar.gz/jdk-16+36/Contents/Home/bin/java
[info] # VM options: <none>
[info] # Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.append
[info] # Parameters: (seqType = Array)
[info] # Run progress: 25.00% complete, ETA 00:03:03
[info] # Fork: 1 of 3
[info] # Warmup Iteration 1: 256937.431 ops/s
[info] # Warmup Iteration 2: 323428.007 ops/s
[info] # Warmup Iteration 3: 321402.976 ops/s
[info] # Warmup Iteration 4: 327117.293 ops/s
[info] # Warmup Iteration 5: 326997.020 ops/s
[info] Iteration 1: 323350.204 ops/s
[info] Iteration 2: 325429.683 ops/s
[info] Iteration 3: 323796.903 ops/s
[info] Iteration 4: 322991.694 ops/s
[info] Iteration 5: 326875.152 ops/s
[info] # Run progress: 33.33% complete, ETA 00:02:42
[info] # Fork: 2 of 3
[info] # Warmup Iteration 1: 260939.904 ops/s
[info] # Warmup Iteration 2: 324955.949 ops/s
[info] # Warmup Iteration 3: 321661.497 ops/s
[info] # Warmup Iteration 4: 326037.990 ops/s
[info] # Warmup Iteration 5: 326948.733 ops/s
[info] Iteration 1: 324058.030 ops/s
[info] Iteration 2: 326674.578 ops/s
[info] Iteration 3: 323797.141 ops/s
[info] Iteration 4: 324300.530 ops/s
[info] Iteration 5: 325663.911 ops/s
[info] # Run progress: 41.67% complete, ETA 00:02:22
[info] # Fork: 3 of 3
[info] # Warmup Iteration 1: 268401.765 ops/s
[info] # Warmup Iteration 2: 323302.596 ops/s
[info] # Warmup Iteration 3: 325240.123 ops/s
[info] # Warmup Iteration 4: 327035.659 ops/s
[info] # Warmup Iteration 5: 324677.843 ops/s
[info] Iteration 1: 325642.220 ops/s
[info] Iteration 2: 322929.840 ops/s
[info] Iteration 3: 327543.296 ops/s
[info] Iteration 4: 324430.312 ops/s
[info] Iteration 5: 325879.118 ops/s
[info] Result "benchmarks.AppendBenchmark.append":
[info] 324890.841 ±(99.9%) 1566.426 ops/s [Average]
[info] (min, avg, max) = (322929.840, 324890.841, 327543.296), stdev = 1465.236
[info] CI (99.9%): [323324.415, 326457.267] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 16, OpenJDK 64-Bit Server VM, 16+36
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%252B36/OpenJDK16-jdk_x64_mac_hotspot_16_36.tar.gz/jdk-16+36/Contents/Home/bin/java
[info] # VM options: <none>
[info] # Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.prepend
[info] # Parameters: (seqType = List)
[info] # Run progress: 50.00% complete, ETA 00:02:02
[info] # Fork: 1 of 3
[info] # Warmup Iteration 1: 188409084.410 ops/s
[info] # Warmup Iteration 2: 213721652.426 ops/s
[info] # Warmup Iteration 3: 262145054.827 ops/s
[info] # Warmup Iteration 4: 259869782.772 ops/s
[info] # Warmup Iteration 5: 261067750.381 ops/s
[info] Iteration 1: 259996648.263 ops/s
[info] Iteration 2: 260883002.813 ops/s
[info] Iteration 3: 261735496.560 ops/s
[info] Iteration 4: 260144851.587 ops/s
[info] Iteration 5: 259318144.688 ops/s
[info] # Run progress: 58.33% complete, ETA 00:01:41
[info] # Fork: 2 of 3
[info] # Warmup Iteration 1: 187146352.722 ops/s
[info] # Warmup Iteration 2: 211672206.523 ops/s
[info] # Warmup Iteration 3: 262170754.165 ops/s
[info] # Warmup Iteration 4: 260083030.330 ops/s
[info] # Warmup Iteration 5: 262109382.930 ops/s
[info] Iteration 1: 259878922.591 ops/s
[info] Iteration 2: 260582615.078 ops/s
[info] Iteration 3: 262822949.269 ops/s
[info] Iteration 4: 260527207.520 ops/s
[info] Iteration 5: 261987481.321 ops/s
[info] # Run progress: 66.67% complete, ETA 00:01:21
[info] # Fork: 3 of 3
[info] # Warmup Iteration 1: 190039371.258 ops/s
[info] # Warmup Iteration 2: 211998246.451 ops/s
[info] # Warmup Iteration 3: 262410328.368 ops/s
[info] # Warmup Iteration 4: 260510869.328 ops/s
[info] # Warmup Iteration 5: 259612337.021 ops/s
[info] Iteration 1: 260536125.586 ops/s
[info] Iteration 2: 260298978.272 ops/s
[info] Iteration 3: 260845924.796 ops/s
[info] Iteration 4: 260536346.256 ops/s
[info] Iteration 5: 261647651.004 ops/s
[info] Result "benchmarks.AppendBenchmark.prepend":
[info] 260782823.040 ±(99.9%) 978617.464 ops/s [Average]
[info] (min, avg, max) = (259318144.688, 260782823.040, 262822949.269), stdev = 915399.383
[info] CI (99.9%): [259804205.576, 261761440.505] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 16, OpenJDK 64-Bit Server VM, 16+36
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/AdoptOpenJDK/openjdk16-binaries/releases/download/jdk-16%252B36/OpenJDK16-jdk_x64_mac_hotspot_16_36.tar.gz/jdk-16+36/Contents/Home/bin/java
[info] # VM options: <none>
[info] # Blackhole mode: full + dont-inline hint (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.prepend
[info] # Parameters: (seqType = Array)
[info] # Run progress: 75.00% complete, ETA 00:01:01
[info] # Fork: 1 of 3
[info] # Warmup Iteration 1: 252397.496 ops/s
[info] # Warmup Iteration 2: 337998.744 ops/s
[info] # Warmup Iteration 3: 345951.574 ops/s
[info] # Warmup Iteration 4: 343857.559 ops/s
[info] # Warmup Iteration 5: 347977.968 ops/s
[info] Iteration 1: 344471.900 ops/s
[info] Iteration 2: 341589.775 ops/s
[info] Iteration 3: 348045.040 ops/s
[info] Iteration 4: 344067.995 ops/s
[info] Iteration 5: 342848.365 ops/s
[info] # Run progress: 83.33% complete, ETA 00:00:40
[info] # Fork: 2 of 3
[info] # Warmup Iteration 1: 249095.672 ops/s
[info] # Warmup Iteration 2: 314107.958 ops/s
[info] # Warmup Iteration 3: 334600.524 ops/s
[info] # Warmup Iteration 4: 334950.985 ops/s
[info] # Warmup Iteration 5: 347110.134 ops/s
[info] Iteration 1: 341148.107 ops/s
[info] Iteration 2: 340448.572 ops/s
[info] Iteration 3: 346868.641 ops/s
[info] Iteration 4: 340769.909 ops/s
[info] Iteration 5: 347067.763 ops/s
[info] # Run progress: 91.67% complete, ETA 00:00:20
[info] # Fork: 3 of 3
[info] # Warmup Iteration 1: 252908.714 ops/s
[info] # Warmup Iteration 2: 340453.892 ops/s
[info] # Warmup Iteration 3: 347173.615 ops/s
[info] # Warmup Iteration 4: 337969.144 ops/s
[info] # Warmup Iteration 5: 348815.956 ops/s
[info] Iteration 1: 344255.691 ops/s
[info] Iteration 2: 339393.645 ops/s
[info] Iteration 3: 349972.391 ops/s
[info] Iteration 4: 344850.766 ops/s
[info] Iteration 5: 348802.589 ops/s
[info] Result "benchmarks.AppendBenchmark.prepend":
[info] 344306.743 ±(99.9%) 3521.130 ops/s [Average]
[info] (min, avg, max) = (339393.645, 344306.743, 349972.391), stdev = 3293.668
[info] CI (99.9%): [340785.613, 347827.874] (assumes normal distribution)
[info] # Run complete. Total time: 00:04:04
[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 (seqType) Mode Cnt Score Error Units
[info] AppendBenchmark.append List thrpt 15 16741.342 ± 99.608 ops/s
[info] AppendBenchmark.append Array thrpt 15 324890.841 ± 1566.426 ops/s
[info] AppendBenchmark.prepend List thrpt 15 260782823.040 ± 978617.464 ops/s
[info] AppendBenchmark.prepend Array thrpt 15 344306.743 ± 3521.130 ops/s
[info] Benchmark result is saved to ListConcatResultsAdopt.json
[success] Total time: 251 s (04:11), completed Feb 28, 2023, 7:21:07 PM
\ No newline at end of file
[
{
"jmhVersion" : "1.36",
"benchmark" : "benchmarks.AppendBenchmark.append",
"mode" : "thrpt",
"threads" : 1,
"forks" : 3,
"jvm" : "/Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java",
"jvmArgs" : [
"-XX:ThreadPriorityPolicy=1",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+EnableJVMCIProduct",
"-XX:-UnlockExperimentalVMOptions"
],
"jdkVersion" : "17.0.3",
"vmName" : "OpenJDK 64-Bit Server VM",
"vmVersion" : "17.0.3+7-jvmci-22.1-b06",
"warmupIterations" : 5,
"warmupTime" : "2 s",
"warmupBatchSize" : 1,
"measurementIterations" : 5,
"measurementTime" : "2 s",
"measurementBatchSize" : 1,
"params" : {
"seqType" : "List"
},
"primaryMetric" : {
"score" : 27587.333068903525,
"scoreError" : 779.2765057384485,
"scoreConfidence" : [
26808.056563165075,
28366.609574641974
],
"scorePercentiles" : {
"0.0" : 26636.45875836399,
"50.0" : 27488.761014323347,
"90.0" : 28685.1532239159,
"95.0" : 28702.604248089287,
"99.0" : 28702.604248089287,
"99.9" : 28702.604248089287,
"99.99" : 28702.604248089287,
"99.999" : 28702.604248089287,
"99.9999" : 28702.604248089287,
"100.0" : 28702.604248089287
},
"scoreUnit" : "ops/s",
"rawData" : [
[
27111.252411579146,
26636.45875836399,
26720.764406935567,
26775.098116512247,
27081.815054246406
],
[
28597.10589402873,
27787.75909589271,
28702.604248089287,
28673.519207800306,
28544.426688870448
],
[
27488.761014323347,
27163.74972661148,
27608.60705159241,
27558.662512558556,
27359.411846148207
]
]
},
"secondaryMetrics" : {
}
},
{
"jmhVersion" : "1.36",
"benchmark" : "benchmarks.AppendBenchmark.append",
"mode" : "thrpt",
"threads" : 1,
"forks" : 3,
"jvm" : "/Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java",
"jvmArgs" : [
"-XX:ThreadPriorityPolicy=1",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+EnableJVMCIProduct",
"-XX:-UnlockExperimentalVMOptions"
],
"jdkVersion" : "17.0.3",
"vmName" : "OpenJDK 64-Bit Server VM",
"vmVersion" : "17.0.3+7-jvmci-22.1-b06",
"warmupIterations" : 5,
"warmupTime" : "2 s",
"warmupBatchSize" : 1,
"measurementIterations" : 5,
"measurementTime" : "2 s",
"measurementBatchSize" : 1,
"params" : {
"seqType" : "Array"
},
"primaryMetric" : {
"score" : 344200.9303667864,
"scoreError" : 4812.005845702596,
"scoreConfidence" : [
339388.92452108377,
349012.936212489
],
"scorePercentiles" : {
"0.0" : 335513.69442157826,
"50.0" : 345190.53051164455,
"90.0" : 349000.0024104471,
"95.0" : 349203.57322418,
"99.0" : 349203.57322418,
"99.9" : 349203.57322418,
"99.99" : 349203.57322418,
"99.999" : 349203.57322418,
"99.9999" : 349203.57322418,
"100.0" : 349203.57322418
},
"scoreUnit" : "ops/s",
"rawData" : [
[
348224.644285276,
338457.2229450535,
347095.78308374365,
347799.569536812,
342637.98563686473
],
[
342277.39808734175,
335513.69442157826,
345643.69179724285,
345190.53051164455,
343368.39465621137
],
[
348507.35918698116,
336303.0942329323,
349203.57322418,
348864.28853462514,
343926.7253613073
]
]
},
"secondaryMetrics" : {
}
},
{
"jmhVersion" : "1.36",
"benchmark" : "benchmarks.AppendBenchmark.prepend",
"mode" : "thrpt",
"threads" : 1,
"forks" : 3,
"jvm" : "/Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java",
"jvmArgs" : [
"-XX:ThreadPriorityPolicy=1",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+EnableJVMCIProduct",
"-XX:-UnlockExperimentalVMOptions"
],
"jdkVersion" : "17.0.3",
"vmName" : "OpenJDK 64-Bit Server VM",
"vmVersion" : "17.0.3+7-jvmci-22.1-b06",
"warmupIterations" : 5,
"warmupTime" : "2 s",
"warmupBatchSize" : 1,
"measurementIterations" : 5,
"measurementTime" : "2 s",
"measurementBatchSize" : 1,
"params" : {
"seqType" : "List"
},
"primaryMetric" : {
"score" : 4.395185336245844E8,
"scoreError" : 3139396.75945374,
"scoreConfidence" : [
4.3637913686513066E8,
4.426579303840381E8
],
"scorePercentiles" : {
"0.0" : 4.3251206882940674E8,
"50.0" : 4.398418127026027E8,
"90.0" : 4.430192990268462E8,
"95.0" : 4.431416206658778E8,
"99.0" : 4.431416206658778E8,
"99.9" : 4.431416206658778E8,
"99.99" : 4.431416206658778E8,
"99.999" : 4.431416206658778E8,
"99.9999" : 4.431416206658778E8,
"100.0" : 4.431416206658778E8
},
"scoreUnit" : "ops/s",
"rawData" : [
[
4.4050388151310176E8,
4.3251206882940674E8,
4.405673125027769E8,
4.395851001355608E8,
4.367754743472891E8
],
[
4.349592511520088E8,
4.3916490937986904E8,
4.429377512674917E8,
4.4243404734922457E8,
4.398418127026027E8
],
[
4.398461243347277E8,
4.395025558003625E8,
4.431416206658778E8,
4.42185188952101E8,
4.388209054363641E8
]
]
},
"secondaryMetrics" : {
}
},
{
"jmhVersion" : "1.36",
"benchmark" : "benchmarks.AppendBenchmark.prepend",
"mode" : "thrpt",
"threads" : 1,
"forks" : 3,
"jvm" : "/Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java",
"jvmArgs" : [
"-XX:ThreadPriorityPolicy=1",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+EnableJVMCIProduct",
"-XX:-UnlockExperimentalVMOptions"
],
"jdkVersion" : "17.0.3",
"vmName" : "OpenJDK 64-Bit Server VM",
"vmVersion" : "17.0.3+7-jvmci-22.1-b06",
"warmupIterations" : 5,
"warmupTime" : "2 s",
"warmupBatchSize" : 1,
"measurementIterations" : 5,
"measurementTime" : "2 s",
"measurementBatchSize" : 1,
"params" : {
"seqType" : "Array"
},
"primaryMetric" : {
"score" : 341616.072093229,
"scoreError" : 4617.045948970469,
"scoreConfidence" : [
336999.0261442585,
346233.11804219946
],
"scorePercentiles" : {
"0.0" : 333479.2898105133,
"50.0" : 342027.99826289166,
"90.0" : 348262.1716729684,
"95.0" : 348476.38707334053,
"99.0" : 348476.38707334053,
"99.9" : 348476.38707334053,
"99.99" : 348476.38707334053,
"99.999" : 348476.38707334053,
"99.9999" : 348476.38707334053,
"100.0" : 348476.38707334053
},
"scoreUnit" : "ops/s",
"rawData" : [
[
342027.99826289166,
343433.2455704742,
348119.36140605365,
348476.38707334053,
340879.5884274285
],
[
339953.4015039921,
342384.66338825517,
344338.55601205566,
341050.09366414737,
340331.4422928554
],
[
333479.2898105133,
335585.65088496666,
344190.1716899578,
344499.35789462976,
335491.8735168729
]
]
},
"secondaryMetrics" : {
}
}
]
➜ ~/cs206-demos git:(main) ✗ sbt "clean; Jmh / run -w 2 -r 2 -f 3 -rf JSON -rff 01-AppendBenchmark-graal.json AppendBenchmark"
[info] welcome to sbt 1.7.1 (GraalVM Community Java 17.0.3)
[info] loading settings for project cs206-demos-build from plugins.sbt ...
[info] loading project definition from /Users/mbovel/cs206-demos/project
[info] loading settings for project cs206-demos from build.sbt ...
[info] set current project to cs206-demos (in build file:/Users/mbovel/cs206-demos/)
[success] Total time: 0 s, completed Feb 28, 2023, 7:51:14 PM
[info] compiling 7 Scala sources and 1 Java source to /Users/mbovel/cs206-demos/target/scala-3.2.0/classes ...
[warn] there was 1 deprecation warning; re-run with -deprecation for details
[warn] one warning found
[info] running org.openjdk.jmh.generators.bytecode.JmhBytecodeGenerator /Users/mbovel/cs206-demos/target/scala-3.2.0/classes /Users/mbovel/cs206-demos/target/scala-3.2.0/src_managed/jmh /Users/mbovel/cs206-demos/target/scala-3.2.0/resource_managed/jmh default
Processing 18 classes from /Users/mbovel/cs206-demos/target/scala-3.2.0/classes with "reflection" generator
Writing out Java source to /Users/mbovel/cs206-demos/target/scala-3.2.0/src_managed/jmh and resources to /Users/mbovel/cs206-demos/target/scala-3.2.0/resource_managed/jmh
[info] compiling 20 Java sources to /Users/mbovel/cs206-demos/target/scala-3.2.0/classes ...
[info] running (fork) org.openjdk.jmh.Main -w 2 -r 2 -f 3 -rf JSON -rff 01-AppendBenchmark-graal.json AppendBenchmark
[info] # JMH version: 1.36
[info] # VM version: JDK 17.0.3, OpenJDK 64-Bit Server VM, 17.0.3+7-jvmci-22.1-b06
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java
[info] # VM options: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions
[info] # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.append
[info] # Parameters: (seqType = List)
[info] # Run progress: 0.00% complete, ETA 00:04:00
[info] # Fork: 1 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 23373.440 ops/s
[info] # Warmup Iteration 2: 26410.235 ops/s
[info] # Warmup Iteration 3: 26781.362 ops/s
[info] # Warmup Iteration 4: 26891.116 ops/s
[info] # Warmup Iteration 5: 26557.391 ops/s
[info] Iteration 1: 27111.252 ops/s
[info] Iteration 2: 26636.459 ops/s
[info] Iteration 3: 26720.764 ops/s
[info] Iteration 4: 26775.098 ops/s
[info] Iteration 5: 27081.815 ops/s
[info] # Run progress: 8.33% complete, ETA 00:03:44
[info] # Fork: 2 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 24768.971 ops/s
[info] # Warmup Iteration 2: 27940.186 ops/s
[info] # Warmup Iteration 3: 28352.050 ops/s
[info] # Warmup Iteration 4: 28130.961 ops/s
[info] # Warmup Iteration 5: 28740.682 ops/s
[info] Iteration 1: 28597.106 ops/s
[info] Iteration 2: 27787.759 ops/s
[info] Iteration 3: 28702.604 ops/s
[info] Iteration 4: 28673.519 ops/s
[info] Iteration 5: 28544.427 ops/s
[info] # Run progress: 16.67% complete, ETA 00:03:23
[info] # Fork: 3 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 23777.528 ops/s
[info] # Warmup Iteration 2: 26882.699 ops/s
[info] # Warmup Iteration 3: 27409.873 ops/s
[info] # Warmup Iteration 4: 27519.968 ops/s
[info] # Warmup Iteration 5: 27530.858 ops/s
[info] Iteration 1: 27488.761 ops/s
[info] Iteration 2: 27163.750 ops/s
[info] Iteration 3: 27608.607 ops/s
[info] Iteration 4: 27558.663 ops/s
[info] Iteration 5: 27359.412 ops/s
[info] Result "benchmarks.AppendBenchmark.append":
[info] 27587.333 ±(99.9%) 779.277 ops/s [Average]
[info] (min, avg, max) = (26636.459, 27587.333, 28702.604), stdev = 728.936
[info] CI (99.9%): [26808.057, 28366.610] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 17.0.3, OpenJDK 64-Bit Server VM, 17.0.3+7-jvmci-22.1-b06
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java
[info] # VM options: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions
[info] # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.append
[info] # Parameters: (seqType = Array)
[info] # Run progress: 25.00% complete, ETA 00:03:03
[info] # Fork: 1 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 265024.859 ops/s
[info] # Warmup Iteration 2: 326609.486 ops/s
[info] # Warmup Iteration 3: 344802.539 ops/s
[info] # Warmup Iteration 4: 348283.305 ops/s
[info] # Warmup Iteration 5: 342819.276 ops/s
[info] Iteration 1: 348224.644 ops/s
[info] Iteration 2: 338457.223 ops/s
[info] Iteration 3: 347095.783 ops/s
[info] Iteration 4: 347799.570 ops/s
[info] Iteration 5: 342637.986 ops/s
[info] # Run progress: 33.33% complete, ETA 00:02:43
[info] # Fork: 2 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 276769.826 ops/s
[info] # Warmup Iteration 2: 334116.457 ops/s
[info] # Warmup Iteration 3: 346624.727 ops/s
[info] # Warmup Iteration 4: 343851.675 ops/s
[info] # Warmup Iteration 5: 341754.997 ops/s
[info] Iteration 1: 342277.398 ops/s
[info] Iteration 2: 335513.694 ops/s
[info] Iteration 3: 345643.692 ops/s
[info] Iteration 4: 345190.531 ops/s
[info] Iteration 5: 343368.395 ops/s
[info] # Run progress: 41.67% complete, ETA 00:02:22
[info] # Fork: 3 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 269247.739 ops/s
[info] # Warmup Iteration 2: 336018.939 ops/s
[info] # Warmup Iteration 3: 346975.591 ops/s
[info] # Warmup Iteration 4: 348835.358 ops/s
[info] # Warmup Iteration 5: 345030.394 ops/s
[info] Iteration 1: 348507.359 ops/s
[info] Iteration 2: 336303.094 ops/s
[info] Iteration 3: 349203.573 ops/s
[info] Iteration 4: 348864.289 ops/s
[info] Iteration 5: 343926.725 ops/s
[info] Result "benchmarks.AppendBenchmark.append":
[info] 344200.930 ±(99.9%) 4812.006 ops/s [Average]
[info] (min, avg, max) = (335513.694, 344200.930, 349203.573), stdev = 4501.153
[info] CI (99.9%): [339388.925, 349012.936] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 17.0.3, OpenJDK 64-Bit Server VM, 17.0.3+7-jvmci-22.1-b06
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java
[info] # VM options: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions
[info] # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.prepend
[info] # Parameters: (seqType = List)
[info] # Run progress: 50.00% complete, ETA 00:02:02
[info] # Fork: 1 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 370783048.373 ops/s
[info] # Warmup Iteration 2: 425752527.947 ops/s
[info] # Warmup Iteration 3: 440133822.036 ops/s
[info] # Warmup Iteration 4: 441228524.765 ops/s
[info] # Warmup Iteration 5: 437686754.908 ops/s
[info] Iteration 1: 440503881.513 ops/s
[info] Iteration 2: 432512068.829 ops/s
[info] Iteration 3: 440567312.503 ops/s
[info] Iteration 4: 439585100.136 ops/s
[info] Iteration 5: 436775474.347 ops/s
[info] # Run progress: 58.33% complete, ETA 00:01:41
[info] # Fork: 2 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 373523242.244 ops/s
[info] # Warmup Iteration 2: 429225749.909 ops/s
[info] # Warmup Iteration 3: 442819268.215 ops/s
[info] # Warmup Iteration 4: 443002577.809 ops/s
[info] # Warmup Iteration 5: 438616589.584 ops/s
[info] Iteration 1: 434959251.152 ops/s
[info] Iteration 2: 439164909.380 ops/s
[info] Iteration 3: 442937751.267 ops/s
[info] Iteration 4: 442434047.349 ops/s
[info] Iteration 5: 439841812.703 ops/s
[info] # Run progress: 66.67% complete, ETA 00:01:21
[info] # Fork: 3 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 374277828.674 ops/s
[info] # Warmup Iteration 2: 429245943.070 ops/s
[info] # Warmup Iteration 3: 442372491.666 ops/s
[info] # Warmup Iteration 4: 442142122.070 ops/s
[info] # Warmup Iteration 5: 437766131.196 ops/s
[info] Iteration 1: 439846124.335 ops/s
[info] Iteration 2: 439502555.800 ops/s
[info] Iteration 3: 443141620.666 ops/s
[info] Iteration 4: 442185188.952 ops/s
[info] Iteration 5: 438820905.436 ops/s
[info] Result "benchmarks.AppendBenchmark.prepend":
[info] 439518533.625 ±(99.9%) 3139396.759 ops/s [Average]
[info] (min, avg, max) = (432512068.829, 439518533.625, 443141620.666), stdev = 2936593.677
[info] CI (99.9%): [436379136.865, 442657930.384] (assumes normal distribution)
[info] # JMH version: 1.36
[info] # VM version: JDK 17.0.3, OpenJDK 64-Bit Server VM, 17.0.3+7-jvmci-22.1-b06
[info] # VM invoker: /Users/mbovel/Library/Caches/Coursier/arc/https/github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java17-darwin-amd64-22.1.0.tar.gz/graalvm-ce-java17-22.1.0/Contents/Home/bin/java
[info] # VM options: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions
[info] # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
[info] # Warmup: 5 iterations, 2 s each
[info] # Measurement: 5 iterations, 2 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: benchmarks.AppendBenchmark.prepend
[info] # Parameters: (seqType = Array)
[info] # Run progress: 75.00% complete, ETA 00:01:01
[info] # Fork: 1 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 251770.106 ops/s
[info] # Warmup Iteration 2: 341575.023 ops/s
[info] # Warmup Iteration 3: 347771.329 ops/s
[info] # Warmup Iteration 4: 347589.371 ops/s
[info] # Warmup Iteration 5: 344054.095 ops/s
[info] Iteration 1: 342027.998 ops/s
[info] Iteration 2: 343433.246 ops/s
[info] Iteration 3: 348119.361 ops/s
[info] Iteration 4: 348476.387 ops/s
[info] Iteration 5: 340879.588 ops/s
[info] # Run progress: 83.33% complete, ETA 00:00:40
[info] # Fork: 2 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 273125.304 ops/s
[info] # Warmup Iteration 2: 335334.877 ops/s
[info] # Warmup Iteration 3: 340530.997 ops/s
[info] # Warmup Iteration 4: 338781.137 ops/s
[info] # Warmup Iteration 5: 332092.788 ops/s
[info] Iteration 1: 339953.402 ops/s
[info] Iteration 2: 342384.663 ops/s
[info] Iteration 3: 344338.556 ops/s
[info] Iteration 4: 341050.094 ops/s
[info] Iteration 5: 340331.442 ops/s
[info] # Run progress: 91.67% complete, ETA 00:00:20
[info] # Fork: 3 of 3
[info] OpenJDK 64-Bit Server VM warning: -XX:ThreadPriorityPolicy=1 may require system level permission, e.g., being the root user. If the necessary permission is not possessed, changes to priority will be silently ignored.
[info] # Warmup Iteration 1: 267065.132 ops/s
[info] # Warmup Iteration 2: 337949.114 ops/s
[info] # Warmup Iteration 3: 343905.307 ops/s
[info] # Warmup Iteration 4: 343889.043 ops/s
[info] # Warmup Iteration 5: 339777.275 ops/s
[info] Iteration 1: 333479.290 ops/s
[info] Iteration 2: 335585.651 ops/s
[info] Iteration 3: 344190.172 ops/s
[info] Iteration 4: 344499.358 ops/s
[info] Iteration 5: 335491.874 ops/s
[info] Result "benchmarks.AppendBenchmark.prepend":
[info] 341616.072 ±(99.9%) 4617.046 ops/s [Average]
[info] (min, avg, max) = (333479.290, 341616.072, 348476.387), stdev = 4318.788
[info] CI (99.9%): [336999.026, 346233.118] (assumes normal distribution)
[info] # Run complete. Total time: 00:04:04
[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] NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise
[info] extra caution when trusting the results, look into the generated code to check the benchmark still
[info] works, and factor in a small probability of new VM bugs. Additionally, while comparisons between
[info] different JVMs are already problematic, the performance difference caused by different Blackhole
[info] modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons.
[info] Benchmark (seqType) Mode Cnt Score Error Units
[info] AppendBenchmark.append List thrpt 15 27587.333 ± 779.277 ops/s
[info] AppendBenchmark.append Array thrpt 15 344200.930 ± 4812.006 ops/s
[info] AppendBenchmark.prepend List thrpt 15 439518533.625 ± 3139396.759 ops/s
[info] AppendBenchmark.prepend Array thrpt 15 341616.072 ± 4617.046 ops/s
[info] Benchmark result is saved to 01-AppendBenchmark-graal.json
[success] Total time: 251 s (04:11), completed Feb 28, 2023, 7:55:25 PM
This diff is collapsed.
benchmarks/results/02-SumBenchmark-adopt.png

135 KiB

This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
benchmarks/results/02-SumBenchmark-graal.png

142 KiB

This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment