-
-
Notifications
You must be signed in to change notification settings - Fork 0
⚗️ Benchmark GDAL Libertiff driver vs async-tiff #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Obtain Sentinel-2 TCI image and convert it to a tiled GeoTIFF, apply LZW compression with Horizontal differencing predictor. Then run benchmarks comparing GDAL's Libertiff driver against async-tiff, using 16 threads.
7e268c7 to
267f864
Compare
Need to remember to put the sample GeoTIFF on CI. Processing it with a newer version of GDAL from official docker image.
267f864 to
be9617f
Compare
Try running directly on official docker image for GDAL 3.12.0. Should have Libertiff driver included.
7be77c6 to
0261cb3
Compare
The ghcr.io/osgeo/gdal:ubuntu-small-3.12.0 docker image doesn't have wget, so might as well use a one-liner to get and process the file.
Fixing various linker issues, also pin georust/gdal to a version that supports GDAL 3.11, xref georust/gdal#664.
Try to fix `setarch: failed to set personality to x86_64: Operation not permitted` on CodSpeedHQ/action. Adapted from suggestion at https://stackoverflow.com/questions/57830375/github-actions-workflow-error-permission-denied/70207187#70207187
533dfb5 to
92ee439
Compare
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action) from 4.3.3 to 4.3.4. - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](CodSpeedHQ/action@v4.3.3...v4.3.4) Also install git following instructions at https://codspeed.io/docs/integrations/ci/github-actions#using-container-images
92ee439 to
2c0447b
Compare
CodSpeed Performance ReportMerging #3 will create unknown performance changesComparing Summary
Benchmarks breakdown
|
Compile on Rust MSRV (1.85), but run benchmarks on stable (currently 1.91.0).
e9d9221 to
e8503a7
Compare
Allow setting number of threads to use for both the read_geotiff_gdal and read_geotiff_async_tiff functions. Set to 4 cores to align with GitHub Actions linux runners. For some reason, LiberTIFF doesn't seem to respect NUM_THREADS properly? Either it uses 1 core or all cores...
To get temporary lifetime extension, xref rust-lang/rust#140593
8146c78 to
e69d660
Compare
This was referenced Nov 11, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Provide instructions for downloading and converting a Sentinel-2 True Colour Image (TCI) file, and run benchmarks comparing read speeds with Libertiff driver (GDAL 3.11.5) and async-tiff (version @ py-v0.2.0)
Steps
cargo benchResults
Ran on my laptop (12th Gen Intel® Core™ i5-12600HX), with 16 threads:
So LiberTIFF can reach ~1.0GB/s throughput, compared to ~0.8GB/s for async-tiff. Looking at my system monitor while the benchmarks were running, I noticed that LiberTIFF was able to reach nearly 100% of CPU load (see 40-25s mark), compared to async-tiff with only used 80% (see 25-10s mark). Slowdown in async-tiff might be because rayon's multi-threading isn't optimized properly yet to use full CPU load.
TODO