|
+ exec java -server -Xms8g -Xmx8g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector -jar build/libs/app.jar deser --libs simdjson_java |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java |
|
|
|
# Run progress: 0.00% complete, ETA 00:02:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=7603 as seed for Random |
|
48.452 ops/s |
|
# Warmup Iteration 2: 50.013 ops/s |
|
# Warmup Iteration 3: 52.857 ops/s |
|
# Warmup Iteration 4: 52.348 ops/s |
|
# Warmup Iteration 5: 52.800 ops/s |
|
Iteration 1: 52.412 ops/s |
|
Iteration 2: 52.643 ops/s |
|
Iteration 3: 53.267 ops/s |
|
Iteration 4: 51.800 ops/s |
|
Iteration 5: 52.520 ops/s |
|
Iteration 6: 52.829 ops/s |
|
Iteration 7: 53.322 ops/s |
|
|
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.stream.Deserialization.genson |
|
|
|
# Run progress: 0.00% complete, ETA 00:05:20 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226099020233603 as seed for Random |
|
1123848.110 ops/s |
|
# Warmup Iteration 2: 1126721.766 ops/s |
|
# Warmup Iteration 3: 979510.456 ops/s |
|
# Warmup Iteration 4: 964018.769 ops/s |
|
# Warmup Iteration 5: 1133510.767 ops/s |
|
Iteration 1: 1117746.621 ops/s |
|
Iteration 2: 1146348.286 ops/s |
|
Iteration 3: 1140385.108 ops/s |
|
Iteration 4: 1116751.830 ops/s |
|
Iteration 5: 1141940.490 ops/s |
|
Iteration 6: 1074275.134 ops/s |
|
Iteration 7: 1098494.902 ops/s |
|
Iteration 8: 1149775.824 ops/s |
|
Iteration 9: 1190300.120 ops/s |
|
Iteration 10: 1167150.049 ops/s |
|
|
|
# Run progress: 25.00% complete, ETA 00:04:02 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226179745730801 as seed for Random |
|
1200853.017 ops/s |
|
# Warmup Iteration 2: 1221612.006 ops/s |
|
# Warmup Iteration 3: 1145691.907 ops/s |
|
# Warmup Iteration 4: 1139942.069 ops/s |
|
# Warmup Iteration 5: 1222911.220 ops/s |
|
Iteration 1: 1195810.872 ops/s |
|
Iteration 2: 1074981.208 ops/s |
|
Iteration 3: 1070975.116 ops/s |
|
Iteration 4: 1131804.183 ops/s |
|
Iteration 5: 1178640.829 ops/s |
|
Iteration 6: 1148645.692 ops/s |
|
Iteration 7: 1096737.807 ops/s |
|
Iteration 8: 1032782.469 ops/s |
|
Iteration 9: 1165556.537 ops/s |
|
Iteration 10: 1123331.316 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.stream.Deserialization.genson": |
|
1128121.720 ±(99.9%) 37642.173 ops/s [Average] |
|
(min, avg, max) = (1032782.469, 1128121.720, 1195810.872), stdev = 43348.782 |
|
CI (99.9%): [1090479.547, 1165763.893] (assumes normal distribution) |
|
|
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.stream.Deserialization.jackson |
|
|
|
# Run progress: 50.00% complete, ETA 00:02:41 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226260499314496 as seed for Random |
|
1414040.936 ops/s |
|
# Warmup Iteration 2: 1569451.629 ops/s |
|
# Warmup Iteration 3: 1625379.589 ops/s |
|
# Warmup Iteration 4: 1601839.608 ops/s |
|
# Warmup Iteration 5: 1596174.827 ops/s |
|
Iteration 1: 1590812.854 ops/s |
|
Iteration 2: 1631915.479 ops/s |
|
Iteration 3: 1514438.755 ops/s |
|
Iteration 4: 1385878.148 ops/s |
|
Iteration 5: 1295453.350 ops/s |
|
Iteration 6: 1348609.261 ops/s |
|
Iteration 7: 1511415.276 ops/s |
|
Iteration 8: 1565136.815 ops/s |
|
Iteration 9: 1574774.694 ops/s |
|
Iteration 10: 1580485.241 ops/s |
|
|
|
# Run progress: 75.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226341226283084 as seed for Random |
|
1790446.050 ops/s |
|
# Warmup Iteration 2: 1781710.508 ops/s |
|
# Warmup Iteration 3: 1810655.655 ops/s |
|
# Warmup Iteration 4: 1787395.623 ops/s |
|
# Warmup Iteration 5: 1809503.989 ops/s |
|
Iteration 1: 1827102.405 ops/s |
|
Iteration 2: 1808196.604 ops/s |
|
Iteration 3: 1836875.861 ops/s |
|
Iteration 4: 1813274.593 ops/s |
|
Iteration 5: 1847584.134 ops/s |
|
Iteration 6: 1779182.412 ops/s |
|
Iteration 7: 1792621.515 ops/s |
|
Iteration 8: 1824540.749 ops/s |
|
Iteration 9: 1821205.968 ops/s |
|
Iteration 10: 1818885.987 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.stream.Deserialization.jackson": |
|
1658419.505 ±(99.9%) 157660.069 ops/s [Average] |
|
(min, avg, max) = (1295453.350, 1658419.505, 1847584.134), stdev = 181561.570 |
|
CI (99.9%): [1500759.436, 1816079.574] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:05:22 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.genson thrpt 20 1128121.720 ± 37642.173 ops/s |
|
Deserialization.jackson thrpt 20 1658419.505 ± 157660.069 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.dsljson |
|
|
|
# Run progress: 0.00% complete, ETA 00:10:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226504869823065 as seed for Random |
|
2489730.381 ops/s |
|
# Warmup Iteration 2: 2562949.386 ops/s |
|
# Warmup Iteration 3: 2572595.346 ops/s |
|
# Warmup Iteration 4: 2527922.890 ops/s |
|
# Warmup Iteration 5: 2550840.785 ops/s |
|
Iteration 1: 2562146.117 ops/s |
|
Iteration 2: 2531853.735 ops/s |
|
Iteration 3: 2559795.858 ops/s |
|
Iteration 4: 2558190.285 ops/s |
|
Iteration 5: 2512004.411 ops/s |
|
Iteration 6: 2506637.015 ops/s |
|
Iteration 7: 2549417.252 ops/s |
|
Iteration 8: q2547765.621 ops/s |
|
Iteration 9:2561045.764 ops/s |
|
Iteration 10: 2544303.183 ops/s |
|
|
|
# Run progress: 12.50% complete, ETA 00:09:24 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226585537418122 as seed for Random |
|
3048185.723 ops/s |
|
# Warmup Iteration 2: 2984185.458 ops/s |
|
# Warmup Iteration 3: 3001986.039 ops/s |
|
# Warmup Iteration 4: 3228530.339 ops/s |
|
# Warmup Iteration 5: 3240781.154 ops/s |
|
Iteration 1: 3221440.926 ops/s |
|
Iteration 2: 3245526.203 ops/s |
|
Iteration 3: 3264807.171 ops/s |
|
Iteration 4: 3218296.996 ops/s |
|
Iteration 5: 3219979.058 ops/s |
|
Iteration 6: 3252943.988 ops/s |
|
Iteration 7: 3254511.527 ops/s |
|
Iteration 8: 3256049.402 ops/s |
|
Iteration 9: 3263848.501 ops/s |
|
Iteration 10: 3231507.439 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.dsljson": |
|
2893103.523 ±(99.9%) 312059.186 ops/s [Average] |
|
(min, avg, max) = (2506637.015, 2893103.523, 3264807.171), stdev = 359367.823 |
|
CI (99.9%): [2581044.336, 3205162.709] (assumes normal distribution) |
|
|
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.dsljson_reflection |
|
|
|
# Run progress: 25.00% complete, ETA 00:08:03 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226666201102960 as seed for Random |
|
2052864.993 ops/s |
|
# Warmup Iteration 2: 2192529.617 ops/s |
|
# Warmup Iteration 3: 2191077.842 ops/s |
|
# Warmup Iteration 4: 2176629.373 ops/s |
|
# Warmup Iteration 5: 2180808.295 ops/s |
|
Iteration 1: 2204160.542 ops/s |
|
Iteration 2: 2230441.565 ops/s |
|
Iteration 3: 2235282.918 ops/s |
|
Iteration 4: 2229251.940 ops/s |
|
Iteration 5: 2211464.895 ops/s |
|
Iteration 6: 2237711.682 ops/s |
|
Iteration 7: 2248900.935 ops/s |
|
Iteration 8: 2250202.267 ops/s |
|
Iteration 9: 2222474.856 ops/s |
|
Iteration 10: 2146165.019 ops/s |
|
|
|
# Run progress: 37.50% complete, ETA 00:06:43 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226746861599036 as seed for Random |
|
2019987.761 ops/s |
|
# Warmup Iteration 2: 2167269.631 ops/s |
|
# Warmup Iteration 3: 2160930.711 ops/s |
|
# Warmup Iteration 4: 2158665.565 ops/s |
|
# Warmup Iteration 5: 2131361.355 ops/s |
|
Iteration 1: 2183546.914 ops/s |
|
Iteration 2: 2170058.285 ops/s |
|
Iteration 3: 2170388.429 ops/s |
|
Iteration 4: 2165636.563 ops/s |
|
Iteration 5: 2176451.457 ops/s |
|
Iteration 6: 2186537.365 ops/s |
|
Iteration 7: 2179022.971 ops/s |
|
Iteration 8: 2168286.270 ops/s |
|
Iteration 9: 2179652.305 ops/s |
|
Iteration 10: 2182430.333 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.dsljson_reflection": |
|
2198903.375 ±(99.9%) 27472.983 ops/s [Average] |
|
(min, avg, max) = (2146165.019, 2198903.375, 2250202.267), stdev = 31637.928 |
|
CI (99.9%): [2171430.392, 2226376.359] (assumes normal distribution) |
|
|
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.fastjson |
|
|
|
# Run progress: 50.00% complete, ETA 00:05:22 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226827550446595 as seed for Random |
|
4268216.654 ops/s |
|
# Warmup Iteration 2: 4434692.677 ops/s |
|
# Warmup Iteration 3: 4428246.432 ops/s |
|
# Warmup Iteration 4: 4426832.498 ops/s |
|
# Warmup Iteration 5: 4401909.487 ops/s |
|
Iteration 1: 4424217.703 ops/s |
|
Iteration 2: 4386151.894 ops/s |
|
Iteration 3: 4367999.205 ops/s |
|
Iteration 4: 4244222.393 ops/s |
|
Iteration 5: 4391344.632 ops/s |
|
Iteration 6: 4284292.528 ops/s |
|
Iteration 7: 4312137.689 ops/s |
|
Iteration 8: 4408319.082 ops/s |
|
Iteration 9: 4369219.961 ops/s |
|
Iteration 10: 4389966.015 ops/s |
|
|
|
# Run progress: 62.50% complete, ETA 00:04:02 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226908211295689 as seed for Random |
|
3796537.856 ops/s |
|
# Warmup Iteration 2: 3927625.893 ops/s |
|
# Warmup Iteration 3: 3918046.594 ops/s |
|
# Warmup Iteration 4: 3917066.127 ops/s |
|
# Warmup Iteration 5: 3928385.072 ops/s |
|
Iteration 1: 3933787.174 ops/s |
|
Iteration 2: 3910768.157 ops/s |
|
Iteration 3: 3915849.553 ops/s |
|
Iteration 4: 3894645.086 ops/s |
|
Iteration 5: 3917757.506 ops/s |
|
Iteration 6: 3911091.612 ops/s |
|
Iteration 7: 3935616.255 ops/s |
|
Iteration 8: 3928938.060 ops/s |
|
Iteration 9: 3923785.594 ops/s |
|
Iteration 10: 3923288.216 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.fastjson": |
|
4138669.916 ±(99.9%) 198432.411 ops/s [Average] |
|
(min, avg, max) = (3894645.086, 4138669.916, 4424217.703), stdev = 228515.059 |
|
CI (99.9%): [3940237.505, 4337102.326] (assumes normal distribution) |
|
|
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: /opt/java/openjdk/bin/java |
|
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 15 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.fastjson_features |
|
|
|
# Run progress: 75.00% complete, ETA 00:02:41 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=226988892731074 as seed for Random |
|
4985307.468 ops/s |
|
# Warmup Iteration 2: 5165864.545 ops/s |
|
# Warmup Iteration 3: 5130414.917 ops/s |
|
# Warmup Iteration 4: 5070500.189 ops/s |
|
# Warmup Iteration 5: 5081286.880 ops/s |
|
Iteration 1: 5106739.450 ops/s |
|
Iteration 2: 5093911.610 ops/s |
|
Iteration 3: 5044995.477 ops/s |
|
Iteration 4: 5134412.978 ops/s |
|
Iteration 5: 5141269.344 ops/s |
|
Iteration 6: 5164750.009 ops/s |
|
Iteration 7: 5172104.417 ops/s |
|
Iteration 8: 5166030.521 ops/s |
|
Iteration 9: 5164354.819 ops/s |
|
Iteration 10: 5167494.434 ops/s |
|
|
|
# Run progress: 87.50% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/app/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=227069543678698 as seed for Random |
|
4661919.763 ops/s |
|
# Warmup Iteration 2: 4814937.705 ops/s |
|
# Warmup Iteration 3: 4813070.080 ops/s |
|
# Warmup Iteration 4: 4817970.555 ops/s |
|
# Warmup Iteration 5: 4817238.213 ops/s |
|
Iteration 1: 4822191.106 ops/s |
|
Iteration 2: 4819915.279 ops/s |
|
Iteration 3: 4831767.574 ops/s |
|
Iteration 4: 4826044.502 ops/s |
|
Iteration 5: 4850385.609 ops/s |
|
Iteration 6: 4838431.832 ops/s |
|
Iteration 7: 4840835.263 ops/s |
|
Iteration 8: 4838614.403 ops/s |
|
Iteration 9: 4838100.510 ops/s |
|
Iteration 10: 4846475.438 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.fastjson_features": |
|
4985441.229 ±(99.9%) 136236.428 ops/s [Average] |
|
(min, avg, max) = (4819915.279, 4985441.229, 5172104.417), stdev = 156890.073 |
|
CI (99.9%): [4849204.801, 5121677.657] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:10:45 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.dsljson thrpt 20 2893103.523 ± 312059.186 ops/s |
|
Deserialization.dsljson_reflection thrpt 20 2198903.375 ± 27472.983 ops/s |
|
Deserialization.fastjson thrpt 20 4138669.916 ± 198432.411 ops/s |
|
Deserialization.fastjson_features thrpt 20 4985441.229 ± 136236.428 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
4 cores |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.simdjson_java thrpt 20 4228663.147 ± 143467.242 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
8 core (physical cores) |
|
SHADOW=No HEAP_SIZE=8g ./run deser --libs simdjson_java |
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=8 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 7 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java |
|
|
|
# Run progress: 0.00% complete, ETA 00:02:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
6556013.036 ops/s |
|
# Warmup Iteration 2: 6554993.696 ops/s |
|
# Warmup Iteration 3: 6694695.173 ops/s |
|
# Warmup Iteration 4: 6643725.018 ops/s |
|
# Warmup Iteration 5: 6924448.492 ops/s |
|
Iteration 1: 6731588.935 ops/s |
|
Iteration 2: 6905731.273 ops/s |
|
Iteration 3: 6854066.978 ops/s |
|
Iteration 4: 6874406.590 ops/s |
|
Iteration 5: 6950944.195 ops/s |
|
Iteration 6: 6865122.457 ops/s |
|
Iteration 7: 6862208.567 ops/s |
|
Iteration 8: 6719313.928 ops/s |
|
Iteration 9: 6890300.415 ops/s |
|
Iteration 10: 6840153.140 ops/s |
|
|
|
# Run progress: 50.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
5644286.210 ops/s |
|
# Warmup Iteration 2: 6305794.973 ops/s |
|
# Warmup Iteration 3: 6496892.449 ops/s |
|
# Warmup Iteration 4: 6566530.838 ops/s |
|
# Warmup Iteration 5: 6587997.736 ops/s |
|
Iteration 1: 6516721.713 ops/s |
|
Iteration 2: 6555063.070 ops/s |
|
Iteration 3: 6365507.005 ops/s |
|
Iteration 4: 6453880.794 ops/s |
|
Iteration 5: 6429711.245 ops/s |
|
Iteration 6: 6271936.020 ops/s |
|
Iteration 7: 6452004.041 ops/s |
|
Iteration 8: 6537047.486 ops/s |
|
Iteration 9: 6470408.099 ops/s |
|
Iteration 10: 6267157.715 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java": |
|
6640663.683 ±(99.9%) 200338.384 ops/s [Average] |
|
(min, avg, max) = (6267157.715, 6640663.683, 6950944.195), stdev = 230709.981 |
|
CI (99.9%): [6440325.300, 6841002.067] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:02:41 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.simdjson_java thrpt 20 6640663.683 ± 200338.384 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
* `-XX:ActiveProcessorCount=9` |
|
* CPU governer=performance |
|
* 8GB |
|
|
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 8 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java |
|
|
|
# Run progress: 0.00% complete, ETA 00:02:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
7634657.717 ops/s |
|
# Warmup Iteration 2: 7717144.883 ops/s |
|
# Warmup Iteration 3: 7574951.431 ops/s |
|
# Warmup Iteration 4: 7641847.380 ops/s |
|
# Warmup Iteration 5: 7629193.168 ops/s |
|
Iteration 1: 7636327.513 ops/s |
|
Iteration 2: 7604405.494 ops/s |
|
Iteration 3: 7565677.887 ops/s |
|
Iteration 4: 7576297.734 ops/s |
|
Iteration 5: 7562284.918 ops/s |
|
Iteration 6: 7531483.678 ops/s |
|
Iteration 7: 7596029.083 ops/s |
|
Iteration 8: 7574887.919 ops/s |
|
Iteration 9: 7520948.699 ops/s |
|
Iteration 10: 7485588.308 ops/s |
|
|
|
# Run progress: 50.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
7597009.825 ops/s |
|
# Warmup Iteration 2: 7409920.017 ops/s |
|
# Warmup Iteration 3: 7276180.018 ops/s |
|
# Warmup Iteration 4: 7277566.649 ops/s |
|
# Warmup Iteration 5: 7250473.679 ops/s |
|
Iteration 1: 7260266.913 ops/s |
|
Iteration 2: 7229395.746 ops/s |
|
Iteration 3: 7234073.819 ops/s |
|
Iteration 4: 7219314.691 ops/s |
|
Iteration 5: 7240491.514 ops/s |
|
Iteration 6: 7246048.329 ops/s |
|
Iteration 7: 7239088.148 ops/s |
|
Iteration 8: 7244117.771 ops/s |
|
Iteration 9: 7232397.675 ops/s |
|
Iteration 10: 7238139.060 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java": |
|
7401863.245 ±(99.9%) 148159.855 ops/s [Average] |
|
(min, avg, max) = (7219314.691, 7401863.245, 7636327.513), stdev = 170621.110 |
|
CI (99.9%): [7253703.389, 7550023.100] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:02:41 |
|
|
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.simdjson_java thrpt 20 7401863.245 ± 148159.855 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
* -XX:ActiveProcessorCount=9 |
|
* 3GHz CPU `for i in `seq 0 15`; do sudo cpupower -c "$i" frequency-set --min 3G --max 3G; done` |
|
* fan disangaged |
|
|
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 8 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java |
|
|
|
# Run progress: 0.00% complete, ETA 00:02:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
8801837.862 ops/s |
|
# Warmup Iteration 2: 9354561.772 ops/s |
|
# Warmup Iteration 3: 9462242.125 ops/s |
|
# Warmup Iteration 4: 9557821.388 ops/s |
|
# Warmup Iteration 5: 9535237.722 ops/s |
|
Iteration 1: 9516837.131 ops/s |
|
Iteration 2: 9481222.297 ops/s |
|
Iteration 3: 9513130.309 ops/s |
|
Iteration 4: 9574531.323 ops/s |
|
Iteration 5: 9579163.068 ops/s |
|
Iteration 6: 9587992.473 ops/s |
|
Iteration 7: 9589909.758 ops/s |
|
Iteration 8: 9591677.030 ops/s |
|
Iteration 9: 9575029.826 ops/s |
|
Iteration 10: 9603307.328 ops/s |
|
|
|
# Run progress: 50.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
8551747.323 ops/s |
|
# Warmup Iteration 2: 9459488.498 ops/s |
|
# Warmup Iteration 3: 9711470.871 ops/s |
|
# Warmup Iteration 4: 9670871.502 ops/s |
|
# Warmup Iteration 5: 9652163.287 ops/s |
|
Iteration 1: 9502266.753 ops/s |
|
Iteration 2: 9658039.026 ops/s |
|
Iteration 3: 9680368.471 ops/s |
|
Iteration 4: 9704213.108 ops/s |
|
Iteration 5: 9687128.169 ops/s |
|
Iteration 6: 9690241.806 ops/s |
|
Iteration 7: 9658803.461 ops/s |
|
Iteration 8: 9706063.738 ops/s |
|
Iteration 9: 9647602.180 ops/s |
|
Iteration 10: 9612945.995 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java": |
|
9608023.663 ±(99.9%) 60566.167 ops/s [Average] |
|
(min, avg, max) = (9481222.297, 9608023.663, 9706063.738), stdev = 69748.088 |
|
CI (99.9%): [9547457.495, 9668589.830] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:02:41 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.simdjson_java thrpt 20 9608023.663 ± 60566.167 ops/s |
|
|
|
|
|
|
|
-------------------------------------------- |
|
|
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 8 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.fastjson |
|
|
|
# Run progress: 0.00% complete, ETA 00:05:20 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
6021038.458 ops/s |
|
# Warmup Iteration 2: 6114229.197 ops/s |
|
# Warmup Iteration 3: 6071223.023 ops/s |
|
# Warmup Iteration 4: 5984019.131 ops/s |
|
# Warmup Iteration 5: 6081779.874 ops/s |
|
Iteration 1: 6073575.864 ops/s |
|
Iteration 2: 6077195.801 ops/s |
|
Iteration 3: 6116991.679 ops/s |
|
Iteration 4: 6140522.087 ops/s |
|
Iteration 5: 6228232.890 ops/s |
|
Iteration 6: 6053816.853 ops/s |
|
Iteration 7: 6157146.864 ops/s |
|
Iteration 8: 6111457.694 ops/s |
|
Iteration 9: 6072063.273 ops/s |
|
Iteration 10: 6050376.300 ops/s |
|
|
|
# Run progress: 25.00% complete, ETA 00:04:02 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
5524890.533 ops/s |
|
# Warmup Iteration 2: 5721376.608 ops/s |
|
# Warmup Iteration 3: 5961596.796 ops/s |
|
# Warmup Iteration 4: 5925222.429 ops/s |
|
# Warmup Iteration 5: 5937484.257 ops/s |
|
Iteration 1: 5945857.502 ops/s |
|
Iteration 2: 5910797.907 ops/s |
|
Iteration 3: 5947935.237 ops/s |
|
Iteration 4: 5949597.733 ops/s |
|
Iteration 5: 5926102.401 ops/s |
|
Iteration 6: 5940521.412 ops/s |
|
Iteration 7: 5976876.646 ops/s |
|
Iteration 8: 5966091.295 ops/s |
|
Iteration 9: 5957278.867 ops/s |
|
Iteration 10: 5975075.434 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.fastjson": |
|
6028875.687 ±(99.9%) 78994.090 ops/s [Average] |
|
(min, avg, max) = (5910797.907, 6028875.687, 6228232.890), stdev = 90969.711 |
|
CI (99.9%): [5949881.597, 6107869.777] (assumes normal distribution) |
|
|
|
|
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 8 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.fastjson_features |
|
|
|
# Run progress: 50.00% complete, ETA 00:02:41 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
6386044.217 ops/s |
|
# Warmup Iteration 2: 6500024.885 ops/s |
|
# Warmup Iteration 3: 6523171.401 ops/s |
|
# Warmup Iteration 4: 6472059.587 ops/s |
|
# Warmup Iteration 5: 6470423.019 ops/s |
|
Iteration 1: 6472804.904 ops/s |
|
Iteration 2: 6482321.272 ops/s |
|
Iteration 3: 6454594.173 ops/s |
|
Iteration 4: 6490703.153 ops/s |
|
Iteration 5: 6276878.308 ops/s |
|
Iteration 6: 6534230.400 ops/s |
|
Iteration 7: 6523364.922 ops/s |
|
Iteration 8: 6504721.290 ops/s |
|
Iteration 9: 6524125.937 ops/s |
|
Iteration 10: 6578111.829 ops/s |
|
|
|
# Run progress: 75.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
6431489.517 ops/s |
|
# Warmup Iteration 2: 6578530.702 ops/s |
|
# Warmup Iteration 3: 6558130.239 ops/s |
|
# Warmup Iteration 4: 6577826.409 ops/s |
|
# Warmup Iteration 5: 6517274.173 ops/s |
|
Iteration 1: 6458046.160 ops/s |
|
Iteration 2: 6409976.569 ops/s |
|
Iteration 3: 6438689.195 ops/s |
|
Iteration 4: 6428701.385 ops/s |
|
Iteration 5: 6428086.032 ops/s |
|
Iteration 6: 6389092.322 ops/s |
|
Iteration 7: 6384367.704 ops/s |
|
Iteration 8: 6360979.827 ops/s |
|
Iteration 9: 6332155.732 ops/s |
|
Iteration 10: 6324089.225 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.fastjson_features": |
|
6439802.017 ±(99.9%) 68119.639 ops/s [Average] |
|
(min, avg, max) = (6276878.308, 6439802.017, 6578111.829), stdev = 78446.678 |
|
CI (99.9%): [6371682.378, 6507921.656] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:05:22 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.fastjson thrpt 20 6028875.687 ± 78994.090 ops/s |
|
Deserialization.fastjson_features thrpt 20 6439802.017 ± 68119.639 ops/s |
|
|
|
-------------------------------------------- |
|
|
|
SEED=15750 SHADOW=No HEAP_SIZE=8g perf stat -e cycles,instructions,cache-misses,branch-misses -e fp_ret_sse_avx_ops.all ./run deser --libs simdjson_java |
|
+ JAR=build/libs/app.jar |
|
+ HEAP_SIZE=8g |
|
+ '[' -z ']' |
|
+ JVM_OPTIONS='-server -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector -Dorg.simdjson.species=512' |
|
+ '[' -z 15750 ']' |
|
+ '[' -z No ']' |
|
+ exec java -server -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector -Dorg.simdjson.species=512 -jar build/libs/app.jar deser --libs simdjson_java |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# JMH version: 1.35 |
|
# VM version: JDK 25.0.1, OpenJDK 64-Bit Server VM, 25.0.1+8-LTS |
|
# VM invoker: java/temurin-25.0.1+8.0.LTS/bin/java |
|
# VM options: -Xms8g -Xmx8g -XX:ActiveProcessorCount=9 --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector -Dorg.simdjson.species=512 |
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) |
|
# Warmup: 5 iterations, 10 s each |
|
# Measurement: 10 iterations, 3 s each |
|
# Timeout: 10 min per iteration |
|
# Threads: 8 threads, will synchronize iterations |
|
# Benchmark mode: Throughput, ops/time |
|
# Benchmark: com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java |
|
|
|
# Run progress: 0.00% complete, ETA 00:02:40 |
|
# Fork: 1 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
10275117.086 ops/s |
|
# Warmup Iteration 2: 10829874.111 ops/s |
|
# Warmup Iteration 3: 10611944.354 ops/s |
|
# Warmup Iteration 4: 10625920.950 ops/s |
|
# Warmup Iteration 5: 10641621.222 ops/s |
|
Iteration 1: 10628959.685 ops/s |
|
Iteration 2: 10634917.439 ops/s |
|
Iteration 3: 10628316.214 ops/s |
|
Iteration 4: 10590173.689 ops/s |
|
Iteration 5: 10680587.601 ops/s |
|
Iteration 6: 10597688.577 ops/s |
|
Iteration 7: 10506609.500 ops/s |
|
Iteration 8: 10658387.466 ops/s |
|
Iteration 9: 10613872.726 ops/s |
|
Iteration 10: 10554741.246 ops/s |
|
|
|
# Run progress: 50.00% complete, ETA 00:01:20 |
|
# Fork: 2 of 2 |
|
WARNING: Using incubator modules: jdk.incubator.vector |
|
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called |
|
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:java-json-benchmark/build/libs/app.jar) |
|
WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils |
|
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release |
|
# Warmup Iteration 1: Using SEED=15750 as seed for Random |
|
9205399.653 ops/s |
|
# Warmup Iteration 2: 10420467.333 ops/s |
|
# Warmup Iteration 3: 10529400.293 ops/s |
|
# Warmup Iteration 4: 10511580.617 ops/s |
|
# Warmup Iteration 5: 10473925.772 ops/s |
|
Iteration 1: 10594217.164 ops/s |
|
Iteration 2: 10454826.200 ops/s |
|
Iteration 3: 10522353.833 ops/s |
|
Iteration 4: 10555429.330 ops/s |
|
Iteration 5: 10487314.531 ops/s |
|
Iteration 6: 10497304.400 ops/s |
|
Iteration 7: 10625258.261 ops/s |
|
Iteration 8: 10443527.495 ops/s |
|
Iteration 9: 10532615.267 ops/s |
|
Iteration 10: 10535915.423 ops/s |
|
|
|
|
|
Result "com.github.fabienrenaud.jjb.databind.Deserialization.simdjson_java": |
|
10567150.802 ±(99.9%) 59225.427 ops/s [Average] |
|
(min, avg, max) = (10443527.495, 10567150.802, 10680587.601), stdev = 68204.090 |
|
CI (99.9%): [10507925.376, 10626376.229] (assumes normal distribution) |
|
|
|
|
|
# Run complete. Total time: 00:02:41 |
|
|
|
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on |
|
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial |
|
experiments, perform baseline and negative tests that provide experimental control, make sure |
|
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. |
|
Do not assume the numbers tell you what you want them to tell. |
|
|
|
NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise |
|
extra caution when trusting the results, look into the generated code to check the benchmark still |
|
works, and factor in a small probability of new VM bugs. Additionally, while comparisons between |
|
different JVMs are already problematic, the performance difference caused by different Blackhole |
|
modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.simdjson_java thrpt 20 10567150.802 ± 59225.427 ops/s |
|
|
|
Performance counter stats for './run deser --libs simdjson_java': |
|
|
|
4,178,065,572,481 cycles:u |
|
15,105,183,956,264 instructions:u # 3.62 insn per cycle |
|
3,157,503,188 cache-misses:u |
|
498,477,305 branch-misses:u |
|
17,072,952 fp_ret_sse_avx_ops.all:u |
|
|
|
161.441555862 seconds time elapsed |
|
|
|
1276.606099000 seconds user |
|
4.726867000 seconds sys |
|
|
|
-------------------------------------------- |
|
|
|
Benchmark Mode Cnt Score Error Units |
|
Deserialization.genson thrpt 20 1,128,121.720 ± 37642.173 ops/s |
|
Deserialization.jackson thrpt 20 1,658,419.505 ± 157660.069 ops/s |
|
Deserialization.dsljson thrpt 20 2,893,103.523 ± 312059.186 ops/s |
|
Deserialization.dsljson_reflection thrpt 20 2,198,903.375 ± 27472.983 ops/s |
|
Deserialization.fastjson thrpt 20 4,138,669.916 ± 198432.411 ops/s |
|
Deserialization.fastjson_features thrpt 20 4,985,441.229 ± 136236.428 ops/s |
|
Deserialization.simdjson_java (3c) thrpt 20 3,833,938.016 ± 157670.476 ops/s |
|
Deserialization.simdjson_java (8c) thrpt 20 7,401,863.245 ± 148159.855 ops/s |
|
Deserialization.simdjson_java (8c,3G) thrpt 20 9,608,023.663 ± 60566.167 ops/s |