Hello all
Apache SIS 1.4 contains a Cloud Optimized GeoTIFF reader, and a GeoTIFF
writer is currently available in 1.5-SNAPSHOT (not yet fully completed).
Those reader/writer are in pure Java (ignoring native code provided by
the JDK itself). There is a widespread belief that a Java code would
surely be slower than C/C++ code. To verify, we conducted a superficial
benchmark. It is very superficial in that we tested only one image with
one compression method, no sub-region, no subsampling, no
parallelization, no reprojection, etc. But the results nevertheless
question the above-cited belief. In that benchmark, Apache SIS and GDAL
performances were equivalent. The numbers actually report Apache SIS as
very slightly faster than GDAL, but we cannot conclude much because of
all above-cited limitations, because there is a possibility of biais in
time measurements (we tried to compensate it), because the differences
are close to margin errors, and because Apache SIS spent 95% of its time
in the native code of the `java.util.zip` package. Assuming that GDAL
also uses the `zlib` library (we did not tested with `libdeflate`), 95%
of this benchmark is actually measuring the same code. However for the
remaining 5%, it suggests that the interfacing between Java and the
native code in `java.nio` and `java.util.zip` packages can be as
efficient as the interfacing between a C/C++ application and native
libraries.
More details are there:
https://www.geomatys.com/2023/10/05/geotiff-reader-writer-performance-comparison/
Martin
- GeoTIFF reader/writer performance comparison Martin Desruisseaux
-