Link

JDeli performance comparison

Below are all the performances comparisons we have done so far (as of 2nd May 2024). We will regularly update and add new results.

How we tested

These figures were generated using jmh (as documented on our blog) with a standard set of images (also documented). They should be easy to replicate if you wish to validate, the code is on GitHub.

Your figures may vary depending on system but the overall results should be comparable.


BMP

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 56.383 ± 0.373
JDeli 171.242 ± 0.124

See BMP reader


GIF

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 4.380 ± 0.011
ImageIO 1.652 ± 0.011
JDeli 5.357 ± 0.140

See GIF reader


JPEG

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 63.441 ± 1.793
JDeli 116.734 ± 5.112
JDeli_Quality_100 50.637 ± 2.592
JDeli_Quality_50 127.940 ± 4.790
Output files File size AVG
Reference 139.8KB
ImageIO 18.4KB
JDeli 18.2KB
JDeli Quality 100 18.3KB
JDeli Quality 50 12.8KB

See JPEG writer


JPEG2000

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIOWithJAI 48.971 ± 0.098
JDeli 123.793 ± 0.135

See JPEG2000 reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 3.743 ± 0.093
JDeli_JP2 4.243 ± 0.305
JDeli_JPX 4.401 ± 0.087
Output files File size AVG
Reference 179.8KB
ImageIO 156.4KB
JDeli JP2 85.6KB
JDeli JPX 121KB

See JPEG2000 writer


PNG

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 1151.556 ± 12.405
ImageIO 296.915 ± 12.564
JDeli 2160.496 ± 43.874

See PNG reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 8.152 ± 0.235
ImageIO 10.993 ± 0.544
JDeli_quantised 2.938 ± 0.370
JDeli_fast 32.083 ± 2.395
JDeli_compressed 5.229 ± 0.636
JDeli_uncompressed 33.386 ± 1.962
Output files File size AVG
Reference files 179.8KB
Apache 185KB
ImageIO 189KB
JDeli_compressed 183.4KB
JDeli_fast 189.2KB
JDeli_quantised 63.8KB
JDeli_uncompressed 189.2KB

See PNG writer


TIFF

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 6.601 ± 0.119
ImageIO 7.976 ± 0.140
JDeli 11.298 ± 0.363

See TIFF reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 363.988 ± 9.254
ImageIO 184.710 ± 1.342
JDeli_better_comp 1045.353 ± 25.915
JDeli_better_speed 1254.833 ± 25.888
JDeli_deflate 999.939 ± 25.049
JDeli_jpeg 1010.410 ± 18.812
JDeli_LZW 906.880 ± 38.993
JDeli_uncompressed 1961.287 ± 36.406
Output files File size AVG
Reference PNG 6.383KB
Apache 674 bytes
ImageIO 1.898KB
JDeli better comp 1.438KB
JDeli better speed 1017 bytes
JDeli deflate 1017 bytes
JDeli jpeg 1018 bytes
JDeli lzw 985 bytes
JDeli uncompressed 1.896KB

See TIFF writer


WEBP

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 217.441 ± 14.804
JDeli 200.908 ± 11.554
JDeli_lossless 287.432 ± 23.937
Output files File size AVG
Reference files 470.33 bytes
ImageIO 231.33 bytes
JDeli lossy 362.67 bytes
JDeli lossless 377.69 bytes

See WEBP writer


Why JDeli?

  • Support image formats such as AVIF, HEIC and JPEG XL (AVIF soon) that are not supported in Java.
  • Process images up to 3x faster than ImageIO and alternative Java image libraries.
  • Prevent JVM crashes caused by native code in other image libraries such as ImageIO.
  • Handle JPEG, PNG, TIFF image file formats fully in Java.
  • Keep your Image files secure as JDeli makes no calls to any external system or third party library.

Start Your Free Trial