压缩基准测试

用 gzip、Brotli 和 Zstandard 以你选择的级别压缩自己的文件,并比较大小、压缩比、速度和内存,全部在浏览器中完成。

输入内容和文件始终留在浏览器中

文件和编解码器

要压缩的文件

任意本地文件。文件始终保留在此设备上。

编解码器和级别
级别 0–9
级别 0–11
级别 1–22

本浏览器的 CompressionStream;它没有级别设置。

每个编解码器和级别都在独立的 Web Worker 中,针对内存中的样本副本运行。不会上传或保存任何内容。

高级别很慢:Brotli 10–11 和 Zstandard 19–22 处理 64 MiB 可能需要几分钟。建议先用较小的样本。

结果

选择一个文件,查看每个编解码器能将其压缩到多小以及速度多快。

本页内容

压缩基准测试用 gzip、Brotli 和 Zstandard 以多个级别压缩你选择的文件,并并排显示压缩后大小、压缩比、节省空间、压缩和解压速度以及 WebAssembly 内存。它用你自己的数据回答哪种编解码器和级别最适合你的数据,而且无需上传。

详细功能

文件的前 1 到 256 MiB 会被读入内存,然后每个编解码器和级别都在全新的 Web Worker 中运行:gzip 使用兼容 zlib 的 Deflate,Brotli 使用 4 MiB 窗口,Zstandard 带校验和,全部编译为 WebAssembly;另外还有浏览器自带的 CompressionStream gzip 用于对比。只对编解码器调用计时。

开启检查后,每个结果都会在另一个全新的 worker 中解压,并按长度和 CRC-32 与原始数据比较,同时测量解压速度。由于每次运行都从空的 WebAssembly 堆开始,内存列显示的就是该编解码器和级别实际所需的内存。

表格会突出显示最小的输出和最快的压缩,并可下载为包含原始数值的 CSV。任意一行都可以用其设置压缩整个文件,并保存为 .gz、.br 或 .zst。

实用示例

JSON API 响应: 一个 16 MiB 的 JSON 导出中,gzip 6 约为 8×,Brotli 9 接近 11×,而 Zstandard 3 的大小接近 gzip,速度却是它的数倍。

为日志选择级别: Zstandard 的 1、3、9 和 19 级别可以显示出额外的 CPU 时间从何处开始不再换来明显的体积缩减。

已压缩的数据: JPEG 或 ZIP 的压缩比接近 1.0×,说明再次压缩是在做无用功。

静态资源: 在服务器上配置预压缩资源之前,先针对打包后的 JavaScript 文件比较 Brotli 11 与 gzip 9。

如何使用此工具

  1. 选择文件

    拖放或选择任意文件。基准测试会立即以默认的编解码器和级别开始。

  2. 选择编解码器和级别

    启用或关闭编解码器,并输入级别,如 1, 6, 9 或范围 3-5。选择要测试文件的多少数据。

  3. 运行并比较

    选择“运行基准测试”。每次运行完成后都会出现一行;最小和最快的结果会被突出显示。

  4. 保存

    将表格下载为 CSV,或在某一行上选择“保存”,用这些设置压缩整个文件。

提示和最佳实践

  • 文本、JSON、CSV 和日志压缩效果好;图片、视频和压缩包几乎不会变小。
  • 在高级别下,Brotli 和 Zstandard 的解压速度远快于压缩速度,适合压缩一次、频繁读取的文件。
  • 计时取决于设备和浏览器;请比较在同一台机器上完成的运行。
  • 要查看或解压压缩包,请使用“压缩包浏览器”。

帮助决定下一步

接下来应该改进什么?

请选择一项建议。这些只是想法,并非承诺推出的功能。

选择一个选项

投票只会将所选选项作为匿名计数发送,不包含输入内容、文件数据、URL、Cookie 或标识符,也不会存储在此浏览器中。重新加载页面后可以再次投票。