在 Go 语言中为浏览器进行压缩

主要观点:比较 Go 语言中 gzip、brotli 和 zstd 压缩算法,通过在实际项目(Edna)中对约 960kB 的index.js文件进行压缩测试,得出各算法的压缩时间和压缩后文件大小的结果。
关键信息:现代浏览器发送 HTTP 请求时会包含Accept-Encoding头,告知服务器可使用 gzip、deflate、brotli 和 zstd 等压缩算法;作者对 Go 语言中的相关库进行测试,包括github.com/andybalholm/brotli用于 brotli,github.com/klauspost/compress用于 gzip 和 zstd(标准库中的 gzip 压缩速度相对较慢);给出了各压缩算法的测试结果及相应代码。
重要细节:测试结果显示,brotli 在压缩后文件大小方面表现最佳,为 236322 字节(236kB),但速度比其他算法慢约 4 倍;brotli 默认设置在速度和大小方面有较好平衡;zstd 更好设置压缩速度最快。测试代码中定义了不同压缩算法的函数,通过读取文件、进行压缩操作并记录时间和大小,最后输出各算法的结果。

阅读 16
0 条评论