Memory Footprint: Revision of all memory-intensive components to resolve issues related to performance and memory usage.
In-Memory Indexing: Introduced IndexService for efficient in-memory asset registration. It addresses a design choice made to prioritize high performance when fallback images are used extensively.
Faster Encoding: up to 30% for WebP, 50% for JPEG and for 100% PNG (for specific access patterns and resolutions)
Faster Scanner: Improved performance of path traversal checks by min. 20% for large datasets
Many memory-intensive operations have been optimised
In response, an in-memory indexing system was introduced, which statically registers each asset. This improves performance when dealing with large numbers of assets and enables fast queries. This index requires approximately 300MB of RAM per million assets.
On Linux, you need to adjust the user_watcher_max system settings
Scanner: Intervals can be set
Improved support for video byte ranges
Access to static directories has been changed to status 403 instead of returning an empty response
Renderer: Optimized header handling and much faster response of 404 for non-existing assets
When delivering video files in particular, the byte-range support has been changed. .
For the video container formats mov, m4v und mp4, only the first chunk is delivered
for requests with range headers. This massively reduces the traffic for video playback.
The internal job queue that determines when images are converted for the storage has been completely re-implemented.
As a result, queue processing is significantly accelerated when API uploads and file system changes occur simultaneously.
The RAM memory requirements have also been significantly reduced.
This version uses Java 17.
Parts of the source code have been updated according to the possibilities of Java 17.
Slight performance advantages could be measured in internal benchmarks.
The display of the capacity of the disk for storage was incorrect and has been fixed.
The speed at which this was determined has been significantly improved.
For images without ICC color profile, the transparency channel could be rendered incorrectly.
This occurred especially with PNG images with linear RGB ICC.