titiler-benchmark (GitHub)

Loading…

Cloud Optimized GeoTIFF (COG)

Loading…

GeoZARR

Loading…

COG Mosaic

Loading…

Cloud Optimized GeoTIFF vs GeoZARR

Loading…

About this report

Two things are measured for each service: single-tile request latency via pytest-benchmark, and load/throughput via siege (10 concurrent clients × 200 repeats per URL list). Both run against the services in Docker containers on a GitHub Actions runner, so treat absolute numbers as noisy and focus on the relative comparison between services.

Siege Metrics

Elapsed time (s)
Total wall-clock time siege took to run the full request list.
Response time (s)
Average time between sending a request and receiving the full response.
Transaction rate (trans/sec)
Average number of completed requests per second over the run.
Concurrency
Average number of simultaneous connections siege observed while the run was in progress.

Services

COG | sync: titiler - GDAL for I/O and reprojection
COG | async: async-titiler - Obstore for I/O, async-geotiff for cog metadata handling and GDAL for reprojection
GeoZarr | sync (xarray): titiler-eopf - Obstore for I/O, Xarray for data handling and GDAL for reprojection
GeoZarr | sync (zarr-python): custom app - Obstore for I/O, zarr-python for data handling and GDAL for reprojection
GeoZarr | async (zarr-python): async-titiler - Obstore for I/O, zarr-python for data handling and GDAL for reprojection
Mosaic scenario — tiling the same STAC-search mosaic, resolving assets through a STAC API (titiler-stacapi sync vs. async-titiler-stacapi async).