Y8 grayscale image converted from all RGB24 colors (detail)

April 2020

Anomalies

QEMU ARM VM

The anomalies in performance that I found in December 2019 on ARM processors seems to be fixed in the latest version 14.0.1 release of JDK 14.

Ubuntu 20.04

copyTo16New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
AdoptJDK11New large thrpt 25 17.560 ± 1.040 ops/s
AdoptJDK11Old large thrpt 25 12.954 ± 2.159 ops/s
AdoptJDK12New large thrpt 25 9.160 ± 0.093 ops/s
AdoptJDK12Old large thrpt 25 13.517 ± 2.277 ops/s
AdoptJDK13New large thrpt 25 5.255 ± 0.859 ops/s
AdoptJDK13Old large thrpt 25 3.514 ± 0.536 ops/s
AdoptJDK14New large thrpt 25 15.437 ± 0.743 ops/s
AdoptJDK14Old large thrpt 25 10.104 ± 2.602 ops/s
writeTo16New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
AdoptJDK11New large thrpt 25 13.630 ± 2.928 ops/s
AdoptJDK11Old large thrpt 25 12.992 ± 1.767 ops/s
AdoptJDK12New large thrpt 25 16.015 ± 0.237 ops/s
AdoptJDK12Old large thrpt 25 13.666 ± 1.150 ops/s
AdoptJDK13New large thrpt 25 5.264 ± 0.053 ops/s
AdoptJDK13Old large thrpt 25 4.650 ± 0.443 ops/s
AdoptJDK14New large thrpt 25 13.229 ± 1.960 ops/s
AdoptJDK14Old large thrpt 25 12.032 ± 2.366 ops/s
copyTo32New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
AdoptJDK11New large thrpt 25 138.874 ± 3.664 ops/s
AdoptJDK11Old large thrpt 25 139.008 ± 2.623 ops/s
AdoptJDK12New large thrpt 25 108.964 ± 27.817 ops/s
AdoptJDK12Old large thrpt 25 140.204 ± 2.641 ops/s
AdoptJDK13New large thrpt 25 45.148 ± 0.471 ops/s
AdoptJDK13Old large thrpt 25 45.051 ± 0.680 ops/s
AdoptJDK14New large thrpt 25 137.526 ± 2.620 ops/s
AdoptJDK14Old large thrpt 25 132.180 ± 14.018 ops/s
writeto32New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
AdoptJDK11New large thrpt 25 78.634 ± 2.756 ops/s
AdoptJDK11Old large thrpt 25 81.584 ± 1.849 ops/s
AdoptJDK12New large thrpt 25 71.084 ± 3.792 ops/s
AdoptJDK12Old large thrpt 25 69.309 ± 2.325 ops/s
AdoptJDK13New large thrpt 25 21.627 ± 0.480 ops/s
AdoptJDK13Old large thrpt 25 22.955 ± 0.409 ops/s
AdoptJDK14New large thrpt 25 74.473 ± 2.142 ops/s
AdoptJDK14Old large thrpt 25 72.930 ± 1.039 ops/s

Intel Xeon Processor

Notice that the performance on an Intel Xeon processor is very different from the performance of the same methods on an ARM processor.

Ubuntu 20.04

writeTo16New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
UbuntuJDK11New large thrpt 25 120.235 ± 1.867 ops/s
UbuntuJDK11Old large thrpt 25 116.574 ± 2.590 ops/s
AdoptJDK11New large thrpt 25 123.593 ± 0.026 ops/s
AdoptJDK11Old large thrpt 25 118.291 ± 3.134 ops/s
AdoptJDK12New large thrpt 25 126.926 ± 1.305 ops/s
AdoptJDK12Old large thrpt 25 114.978 ± 0.030 ops/s
AdoptJDK13New large thrpt 25 127.613 ± 1.996 ops/s
AdoptJDK13Old large thrpt 25 124.777 ± 0.120 ops/s
AdoptJDK14New large thrpt 25 202.643 ± 2.071 ops/s
AdoptJDK14Old large thrpt 25 157.710 ± 1.590 ops/s
OracleJDK14New large thrpt 25 205.134 ± 0.735 ops/s
OracleJDK14Old large thrpt 25 160.339 ± 0.024 ops/s
writeTo32New/Old

PNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
UbuntuJDK11New large thrpt 25 1325.503 ± 2.539 ops/s
UbuntuJDK11Old large thrpt 25 1324.506 ± 2.019 ops/s
AdoptJDK11New large thrpt 25 1324.162 ± 3.198 ops/s
AdoptJDK11Old large thrpt 25 1330.414 ± 3.178 ops/s
AdoptJDK12New large thrpt 25 1648.862 ± 5.963 ops/s
AdoptJDK12Old large thrpt 25 1659.928 ± 7.614 ops/s
AdoptJDK13New large thrpt 25 1602.214 ± 35.980 ops/s
AdoptJDK13Old large thrpt 25 1632.068 ± 21.254 ops/s
AdoptJDK14New large thrpt 25 1657.546 ± 16.599 ops/s
AdoptJDK14Old large thrpt 25 1655.515 ± 7.576 ops/s
OracleJDK14New large thrpt 25 1655.789 ± 11.278 ops/s
OracleJDK14Old large thrpt 25 1662.477 ± 7.200 ops/s

Benchmarks

The results of the benchmark tests are grouped by the processor, operating system, and build of the Java Development Kit (JDK) on which they ran.

I ran the following command for the benchmark tests:

$ java -jar target/benchmarks.jar -p type=large

QEMU ARM VM

Ubuntu 20.04

AdoptOpenJDK 11

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 5.730 ± 0.457 ops/s
copyTo16New large thrpt 25 17.560 ± 1.040 ops/s
copyTo16Old large thrpt 25 12.954 ± 2.159 ops/s
copyTo32New large thrpt 25 138.874 ± 3.664 ops/s
copyTo32Old large thrpt 25 139.008 ± 2.623 ops/s
writeTo08New large thrpt 25 4.475 ± 0.018 ops/s
writeTo16New large thrpt 25 13.630 ± 2.928 ops/s
writeTo16Old large thrpt 25 12.992 ± 1.767 ops/s
writeTo32New large thrpt 25 78.634 ± 2.756 ops/s
writeTo32Old large thrpt 25 81.584 ± 1.849 ops/s
AdoptOpenJDK 12

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 6.027 ± 0.028 ops/s
copyTo16New large thrpt 25 9.160 ± 0.093 ops/s
copyTo16Old large thrpt 25 13.517 ± 2.277 ops/s
copyTo32New large thrpt 25 108.964 ± 27.817 ops/s
copyTo32Old large thrpt 25 140.204 ± 2.641 ops/s
writeTo08New large thrpt 25 5.895 ± 0.034 ops/s
writeTo16New large thrpt 25 16.015 ± 0.237 ops/s
writeTo16Old large thrpt 25 13.666 ± 1.150 ops/s
writeTo32New large thrpt 25 71.084 ± 3.792 ops/s
writeTo32Old large thrpt 25 69.309 ± 2.325 ops/s
AdoptOpenJDK 13

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 1.880 ± 0.152 ops/s
copyTo16New large thrpt 25 5.255 ± 0.859 ops/s
copyTo16Old large thrpt 25 3.514 ± 0.536 ops/s
copyTo32New large thrpt 25 45.148 ± 0.471 ops/s
copyTo32Old large thrpt 25 45.051 ± 0.680 ops/s
writeTo08New large thrpt 25 1.737 ± 0.181 ops/s
writeTo16New large thrpt 25 5.264 ± 0.053 ops/s
writeTo16Old large thrpt 25 4.650 ± 0.443 ops/s
writeTo32New large thrpt 25 21.627 ± 0.480 ops/s
writeTo32Old large thrpt 25 22.955 ± 0.409 ops/s
AdoptOpenJDK 14

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 6.350 ± 0.486 ops/s
copyTo16New large thrpt 25 15.437 ± 0.743 ops/s
copyTo16Old large thrpt 25 10.104 ± 2.602 ops/s
copyTo32New large thrpt 25 137.526 ± 2.620 ops/s
copyTo32Old large thrpt 25 132.180 ± 14.018 ops/s
writeTo08New large thrpt 25 5.919 ± 0.453 ops/s
writeTo16New large thrpt 25 13.229 ± 1.960 ops/s
writeTo16Old large thrpt 25 12.032 ± 2.366 ops/s
writeTo32New large thrpt 25 74.473 ± 2.142 ops/s
writeTo32Old large thrpt 25 72.930 ± 1.039 ops/s

Intel Xeon Processor

Ubuntu 20.04

Ubuntu OpenJDK 11

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 128.776 ± 0.040 ops/s
copyTo16New large thrpt 25 132.601 ± 0.019 ops/s
copyTo16Old large thrpt 25 124.149 ± 0.026 ops/s
copyTo32New large thrpt 25 1935.874 ± 8.307 ops/s
copyTo32Old large thrpt 25 1940.149 ± 11.499 ops/s
writeTo08New large thrpt 25 81.268 ± 0.017 ops/s
writeTo16New large thrpt 25 120.235 ± 1.867 ops/s
writeTo16Old large thrpt 25 116.574 ± 2.590 ops/s
writeTo32New large thrpt 25 1325.503 ± 2.539 ops/s
writeTo32Old large thrpt 25 1324.506 ± 2.019 ops/s
AdoptOpenJDK 11

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 128.480 ± 0.052 ops/s
copyTo16New large thrpt 25 132.232 ± 0.069 ops/s
copyTo16Old large thrpt 25 127.023 ± 0.038 ops/s
copyTo32New large thrpt 25 1935.017 ± 5.832 ops/s
copyTo32Old large thrpt 25 1938.695 ± 5.612 ops/s
writeTo08New large thrpt 25 80.755 ± 0.108 ops/s
writeTo16New large thrpt 25 123.593 ± 0.026 ops/s
writeTo16Old large thrpt 25 118.291 ± 3.134 ops/s
writeTo32New large thrpt 25 1324.162 ± 3.198 ops/s
writeTo32Old large thrpt 25 1330.414 ± 3.178 ops/s
AdoptOpenJDK 12

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 107.953 ± 3.839 ops/s
copyTo16New large thrpt 25 132.420 ± 0.234 ops/s
copyTo16Old large thrpt 25 124.656 ± 1.315 ops/s
copyTo32New large thrpt 25 1975.502 ± 8.478 ops/s
copyTo32Old large thrpt 25 1962.292 ± 11.733 ops/s
writeTo08New large thrpt 25 117.210 ± 0.913 ops/s
writeTo16New large thrpt 25 126.926 ± 1.305 ops/s
writeTo16Old large thrpt 25 114.978 ± 0.030 ops/s
writeTo32New large thrpt 25 1648.862 ± 5.963 ops/s
writeTo32Old large thrpt 25 1659.928 ± 7.614 ops/s
AdoptOpenJDK 13

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 116.929 ± 0.236 ops/s
copyTo16New large thrpt 25 133.420 ± 0.578 ops/s
copyTo16Old large thrpt 25 125.451 ± 0.026 ops/s
copyTo32New large thrpt 25 1958.416 ± 10.372 ops/s
copyTo32Old large thrpt 25 1965.223 ± 8.344 ops/s
writeTo08New large thrpt 25 120.104 ± 3.206 ops/s
writeTo16New large thrpt 25 127.613 ± 1.996 ops/s
writeTo16Old large thrpt 25 124.777 ± 0.120 ops/s
writeTo32New large thrpt 25 1602.214 ± 35.980 ops/s
writeTo32Old large thrpt 25 1632.068 ± 21.254 ops/s
AdoptOpenJDK 14

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 118.639 ± 19.056 ops/s
copyTo16New large thrpt 25 209.427 ± 1.714 ops/s
copyTo16Old large thrpt 25 163.161 ± 0.023 ops/s
copyTo32New large thrpt 25 1950.789 ± 9.100 ops/s
copyTo32Old large thrpt 25 1962.293 ± 7.495 ops/s
writeTo08New large thrpt 25 127.260 ± 18.339 ops/s
writeTo16New large thrpt 25 202.643 ± 2.071 ops/s
writeTo16Old large thrpt 25 157.710 ± 1.590 ops/s
writeTo32New large thrpt 25 1657.546 ± 16.599 ops/s
writeTo32Old large thrpt 25 1655.515 ± 7.576 ops/s
Oracle OpenJDK 14

Log FilePNG ChartSVG ChartPDF Chart

Bar Chart

Benchmark (type) Mode Cnt Score ± Error Units
copyTo08New large thrpt 25 118.620 ± 18.934 ops/s
copyTo16New large thrpt 25 210.229 ± 1.673 ops/s
copyTo16Old large thrpt 25 163.468 ± 0.356 ops/s
copyTo32New large thrpt 25 1960.571 ± 6.242 ops/s
copyTo32Old large thrpt 25 1971.079 ± 11.276 ops/s
writeTo08New large thrpt 25 126.536 ± 17.884 ops/s
writeTo16New large thrpt 25 205.134 ± 0.735 ops/s
writeTo16Old large thrpt 25 160.339 ± 0.024 ops/s
writeTo32New large thrpt 25 1655.789 ± 11.278 ops/s
writeTo32Old large thrpt 25 1662.477 ± 7.200 ops/s