renaissance % java -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED -XX:-IgnoreUnrecognizedVMOptions -jar 'renaissance-jmh/target/scala-2.12/renaissance-jmh-assembly-0.13.0.jar' NaiveBayes -bm avgt -t 1 -w 6 -wi 10 -r 5 -i 10 -f 10 # JMH version: 1.21 # VM version: JDK 17.0.2, OpenJDK 64-Bit Server VM, 17.0.2+8-LTS # VM invoker: /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home/bin/java # VM options: -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED -XX:-IgnoreUnrecognizedVMOptions # Warmup: 10 iterations, 6 s each # Measurement: 10 iterations, 5 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: org.renaissance.apache.spark.JmhNaiveBayes.runOperation # Run progress: 0.00% complete, ETA 00:18:20 # Fork: 1 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8456.425 ms/op # Warmup Iteration 2: 1810.733 ms/op # Warmup Iteration 3: 1697.111 ms/op # Warmup Iteration 4: 1682.497 ms/op # Warmup Iteration 5: 1669.281 ms/op # Warmup Iteration 6: 1663.194 ms/op # Warmup Iteration 7: 1720.892 ms/op # Warmup Iteration 8: 1714.901 ms/op # Warmup Iteration 9: 1659.605 ms/op # Warmup Iteration 10: 1660.879 ms/op Iteration 1: 1665.491 ms/op Iteration 2: 1676.711 ms/op Iteration 3: 1657.098 ms/op Iteration 4: 1648.779 ms/op Iteration 5: 1682.181 ms/op Iteration 6: 1645.462 ms/op Iteration 7: 1639.339 ms/op Iteration 8: 1651.857 ms/op Iteration 9: 1638.688 ms/op Iteration 10: 1641.280 ms/op # Run progress: 10.00% complete, ETA 00:22:46 # Fork: 2 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8394.587 ms/op # Warmup Iteration 2: 1815.746 ms/op # Warmup Iteration 3: 1681.326 ms/op # Warmup Iteration 4: 1664.045 ms/op # Warmup Iteration 5: 1655.568 ms/op # Warmup Iteration 6: 1681.473 ms/op # Warmup Iteration 7: 1666.401 ms/op # Warmup Iteration 8: 1683.306 ms/op # Warmup Iteration 9: 1663.369 ms/op # Warmup Iteration 10: 1657.878 ms/op Iteration 1: 1675.134 ms/op Iteration 2: 1663.144 ms/op Iteration 3: 1653.966 ms/op Iteration 4: 1653.652 ms/op Iteration 5: 1668.461 ms/op Iteration 6: 1647.740 ms/op Iteration 7: 1666.779 ms/op Iteration 8: 1659.425 ms/op Iteration 9: 1646.172 ms/op Iteration 10: 1671.771 ms/op # Run progress: 20.00% complete, ETA 00:20:20 # Fork: 3 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8311.225 ms/op # Warmup Iteration 2: 1374.294 ms/op # Warmup Iteration 3: 1312.634 ms/op # Warmup Iteration 4: 1255.116 ms/op # Warmup Iteration 5: 1230.617 ms/op # Warmup Iteration 6: 1229.985 ms/op # Warmup Iteration 7: 1227.121 ms/op # Warmup Iteration 8: 1216.768 ms/op # Warmup Iteration 9: 1219.606 ms/op # Warmup Iteration 10: 1211.441 ms/op Iteration 1: 1220.639 ms/op Iteration 2: 1206.964 ms/op Iteration 3: 1203.638 ms/op Iteration 4: 1200.840 ms/op Iteration 5: 1194.992 ms/op Iteration 6: 1197.304 ms/op Iteration 7: 1190.838 ms/op Iteration 8: 1197.256 ms/op Iteration 9: 1190.410 ms/op Iteration 10: 1192.725 ms/op # Run progress: 30.00% complete, ETA 00:17:27 # Fork: 4 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8797.989 ms/op # Warmup Iteration 2: 1870.234 ms/op # Warmup Iteration 3: 1786.089 ms/op # Warmup Iteration 4: 1790.867 ms/op # Warmup Iteration 5: 1789.139 ms/op # Warmup Iteration 6: 1779.102 ms/op # Warmup Iteration 7: 1776.693 ms/op # Warmup Iteration 8: 1798.549 ms/op # Warmup Iteration 9: 1781.999 ms/op # Warmup Iteration 10: 1761.116 ms/op Iteration 1: 1768.409 ms/op Iteration 2: 1776.707 ms/op Iteration 3: 1782.010 ms/op Iteration 4: 1774.254 ms/op Iteration 5: 1779.253 ms/op Iteration 6: 1778.030 ms/op Iteration 7: 1799.747 ms/op Iteration 8: 1751.724 ms/op Iteration 9: 1775.613 ms/op Iteration 10: 1779.216 ms/op # Run progress: 40.00% complete, ETA 00:14:52 # Fork: 5 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8482.623 ms/op # Warmup Iteration 2: 1644.611 ms/op # Warmup Iteration 3: 1497.715 ms/op # Warmup Iteration 4: 1489.758 ms/op # Warmup Iteration 5: 1481.220 ms/op # Warmup Iteration 6: 1450.111 ms/op # Warmup Iteration 7: 1455.664 ms/op # Warmup Iteration 8: 1458.521 ms/op # Warmup Iteration 9: 1448.890 ms/op # Warmup Iteration 10: 1444.251 ms/op Iteration 1: 1511.961 ms/op Iteration 2: 1435.985 ms/op Iteration 3: 1456.273 ms/op Iteration 4: 1437.836 ms/op Iteration 5: 1445.493 ms/op Iteration 6: 1444.016 ms/op Iteration 7: 1427.930 ms/op Iteration 8: 1445.778 ms/op Iteration 9: 1432.580 ms/op Iteration 10: 1437.668 ms/op # Run progress: 50.00% complete, ETA 00:12:25 # Fork: 6 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8638.621 ms/op # Warmup Iteration 2: 1743.875 ms/op # Warmup Iteration 3: 1626.614 ms/op # Warmup Iteration 4: 1621.513 ms/op # Warmup Iteration 5: 1624.915 ms/op # Warmup Iteration 6: 1611.238 ms/op # Warmup Iteration 7: 1613.640 ms/op # Warmup Iteration 8: 1598.426 ms/op # Warmup Iteration 9: 1604.946 ms/op # Warmup Iteration 10: 1590.352 ms/op Iteration 1: 1598.478 ms/op Iteration 2: 1596.084 ms/op Iteration 3: 1588.631 ms/op Iteration 4: 1594.236 ms/op Iteration 5: 1627.119 ms/op Iteration 6: 1575.192 ms/op Iteration 7: 1571.746 ms/op Iteration 8: 1578.301 ms/op Iteration 9: 1580.794 ms/op Iteration 10: 1580.204 ms/op # Run progress: 60.00% complete, ETA 00:09:57 # Fork: 7 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8285.984 ms/op # Warmup Iteration 2: 1403.910 ms/op # Warmup Iteration 3: 1291.611 ms/op # Warmup Iteration 4: 1274.890 ms/op # Warmup Iteration 5: 1276.708 ms/op # Warmup Iteration 6: 1258.053 ms/op # Warmup Iteration 7: 1259.384 ms/op # Warmup Iteration 8: 1250.519 ms/op # Warmup Iteration 9: 1268.410 ms/op # Warmup Iteration 10: 1247.035 ms/op Iteration 1: 1266.558 ms/op Iteration 2: 1239.868 ms/op Iteration 3: 1245.911 ms/op Iteration 4: 1231.435 ms/op Iteration 5: 1235.258 ms/op Iteration 6: 1231.660 ms/op Iteration 7: 1233.392 ms/op Iteration 8: 1243.676 ms/op Iteration 9: 1233.794 ms/op Iteration 10: 1224.284 ms/op # Run progress: 70.00% complete, ETA 00:07:26 # Fork: 8 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8902.795 ms/op # Warmup Iteration 2: 1569.762 ms/op # Warmup Iteration 3: 1429.161 ms/op # Warmup Iteration 4: 1419.289 ms/op # Warmup Iteration 5: 1441.015 ms/op # Warmup Iteration 6: 1409.708 ms/op # Warmup Iteration 7: 1447.209 ms/op # Warmup Iteration 8: 1399.280 ms/op # Warmup Iteration 9: 1419.827 ms/op # Warmup Iteration 10: 1398.088 ms/op Iteration 1: 1401.345 ms/op Iteration 2: 1405.276 ms/op Iteration 3: 1400.640 ms/op Iteration 4: 1391.391 ms/op Iteration 5: 1386.026 ms/op Iteration 6: 1372.666 ms/op Iteration 7: 1389.171 ms/op Iteration 8: 1388.824 ms/op Iteration 9: 1384.106 ms/op Iteration 10: 1390.646 ms/op # Run progress: 80.00% complete, ETA 00:04:57 # Fork: 9 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8548.006 ms/op # Warmup Iteration 2: 1627.228 ms/op # Warmup Iteration 3: 1472.691 ms/op # Warmup Iteration 4: 1456.184 ms/op # Warmup Iteration 5: 1460.752 ms/op # Warmup Iteration 6: 1435.710 ms/op # Warmup Iteration 7: 1464.097 ms/op # Warmup Iteration 8: 1459.345 ms/op # Warmup Iteration 9: 1441.355 ms/op # Warmup Iteration 10: 1432.150 ms/op Iteration 1: 1432.673 ms/op Iteration 2: 1456.239 ms/op Iteration 3: 1428.363 ms/op Iteration 4: 1427.011 ms/op Iteration 5: 1418.944 ms/op Iteration 6: 1418.984 ms/op Iteration 7: 1424.608 ms/op Iteration 8: 1425.658 ms/op Iteration 9: 1418.654 ms/op Iteration 10: 1404.809 ms/op # Run progress: 90.00% complete, ETA 00:02:28 # Fork: 10 of 10 # Warmup Iteration 1: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties NOTE: 'naive-bayes' benchmark uses Spark local executor with 12 (out of 12) threads. 8778.124 ms/op # Warmup Iteration 2: 1601.273 ms/op # Warmup Iteration 3: 1456.733 ms/op # Warmup Iteration 4: 1446.236 ms/op # Warmup Iteration 5: 1428.985 ms/op # Warmup Iteration 6: 1418.756 ms/op # Warmup Iteration 7: 1421.108 ms/op # Warmup Iteration 8: 1406.408 ms/op # Warmup Iteration 9: 1413.577 ms/op # Warmup Iteration 10: 1405.268 ms/op Iteration 1: 1419.565 ms/op Iteration 2: 1394.369 ms/op Iteration 3: 1392.666 ms/op Iteration 4: 1387.861 ms/op Iteration 5: 1392.416 ms/op Iteration 6: 1385.351 ms/op Iteration 7: 1374.821 ms/op Iteration 8: 1384.636 ms/op Iteration 9: 1383.174 ms/op Iteration 10: 1378.493 ms/op Result "org.renaissance.apache.spark.JmhNaiveBayes.runOperation": 1477.252 ±(99.9%) 61.139 ms/op [Average] (min, avg, max) = (1190.410, 1477.252, 1799.747), stdev = 180.268 CI (99.9%): [1416.114, 1538.391] (assumes normal distribution) # Run complete. Total time: 00:24: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. Benchmark Mode Cnt Score Error Units JmhNaiveBayes.runOperation avgt 100 1477.252 ± 61.139 ms/op