This file contains 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
Setup: Intel Haswell, Debian. Both tests ran against the same image libraries (libjpeg-turbo etc). | |
Both ran on a single thread only. Save qualities were 85 for JPEG and WEBP, compress level 7 for PNG. | |
Both tests ran many iterations and then averaged results. | |
Benchmarking code can be found at https://github.com/discordapp/lilliput-bench | |
Test types: | |
- Header reading: We don't actually know what's in a blob of image bytes when we get it. Reading the header allows us | |
to decide if we want to resize the image. | |
- Resize, 256x256 => 32x32: We have lots of icon-sized assets that we need resized into various smaller formats. | |
These make up a pretty sizable percentage of our resizes. |
This file contains 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
lilliput | |
=============== | |
JPEG 1920x1080 header read: 1920x1080, avg: 0.005083 ms, min: 0.004398 ms, max: 0.663941 ms | |
PNG 1920x1080 header read: 1920x1080, avg: 0.003636 ms, min: 0.003362 ms, max: 0.134671 ms | |
WEBP 1920x1080 header read: 1920x1080, avg: 0.002145 ms, min: 0.001795 ms, max: 1.949846 ms | |
GIF 1920x1080 header read: 1920x1080, avg: 0.003795 ms, min: 0.003521 ms, max: 0.140039 ms | |
JPEG 256x256 => 32x32: 1078 Bytes, avg: 0.62 ms, min: 0.58 ms, max: 1.07 ms | |
PNG 256x256 => 32x32: 1411 Bytes, avg: 0.92 ms, min: 0.88 ms, max: 1.43 ms | |
WEBP 256x256 => 32x32: 946 Bytes, avg: 3.19 ms, min: 2.87 ms, max: 4.57 ms | |
GIF 256x256 => 32x32: 18310 Bytes, avg: 27.96 ms, min: 27.31 ms, max: 39.77 ms |