Compression

改善大量重复内容文件的 tarball 压缩效率

有时,我们会希望分发包含大量重复文件的 tarball。绝大多数情况下,tarball 都会进行压缩, 进行适当的预处理有助于显著地提高压缩效率。

数据压缩的基本原理是利用数据中的冗余,通过更短的编码或规则表示重复或可预测的内容, 从而减少存储或传输所需的空间。简单的例子中,比如连续重复的字符「AAAAAA」可以表达为「6A」, 然而,当重复数据分布在较长范围内时,压缩算法很难直接发现和利用这些远距离的关联, 因为需要额外记录位置或匹配信息,这种匹配开销很大,做的话会严重影响压缩速度并且可能收益不高。 对于文本文件来说,其中的许多内容会高频率地出现,而如果一个 tarball 中包括数个内容一样的大型二进制文件,压缩算法很难有效地检测并对他们进行正确的处理。

阅读全文…( 本文约 658 字,阅读大致需要 2 分钟 )

svn checkout的打包测试

| Development | #Subversion | #svn | #FreeBSD | #compression | #xz

📜 历史文件已不具备现实意义

FreeBSD 已经不再用 subversion 了。

今天有一位用户发信给 Release Engineering Team,要求在发行版中提供源代码的 svn checkout 工作副本,以便直接使用。我觉得这是个好主意,因为这样可以用更便宜的 FTP 流量来代替 svn 流量;不过,由于 re@ 内部有人担心这样会让光盘映像继续膨胀,因此我做了些测试来评估这样做的影响。

总共做了 7 个试验。

阅读全文…( 本文约 705 字,阅读大致需要 2 分钟 )

nginx的https压缩

| Security | #nginx | #HTTPS | #compression | #SSL | #performance

官方版本的 nginx 在 https 的时候是不对流量做压缩的,具体原因在这里这里 有解释,它会增加半兆的连接内存开销。

启用 https 压缩除了需要 nginx 本身做少量修改(例如去掉 if[n]def SSL_OP_NO_COMPRESSION 部分的语句块)之外,还需要 OpenSSL 本身编译了加密支持。FreeBSD ports 的 security/openssl 预设启用了 ZLIB 扩展,但基本系统目前没有(由于 zlib 是很大的一片代码,也许需要做了 Capsicum 处理之后才可以放进来用)。

阅读全文…( 本文约 286 字,阅读大致需要 1 分钟 )