6 comments

[ 15.3 ms ] story [ 109 ms ] thread
If I had to guess, it probably comes down to Go's gzip libraries being not as mature as the optimized to death C-based ones in nginx/apache.
Envoy, the L7 proxy on which Ambassador is based, is written in C++.
Testing so so much better than guessing. If only I could get back the amount of wasted time where I've been on teams that used guessing instead of testing to get to the root of problems!
Interesting compromise from the github issue: "In other to reduce latency we decided to compress and flush on each data frame. The downside is that it degrades the compression ratio. The second option is to let gzip to compress until the buffer gets full. I think we could make it configurable."
It would have been interesting to benchmark Akamai's compression as well, to see if they're using standard gzip or some special sauce.
Hey there, author here - good point, I’ll add Akamai! Long story short: standard gzip results, in line with nginx / apache / gzip command-line.