传输数据的大小是影响站点“重量”及其加载时间的主要因素。在加速网站时,任何确保较少数据传输同时保持信息量或网站质量的措施都是最优先考虑的。可以应用此类措施的技术物有所值。今天我们将弄清楚为什么您需要压缩(或存档)网站上的数据以及如何正确设置它。

目前有大量的数据压缩归档算法可以分为三大类

1. 流量算法。该组包括 RLE(游程编码)、LZ* 等家族的算法。在对数据进行编码时,使用的不是有关消息中符号频率的信息,而是有关先前遇到的序列的信息。例如,gzip (LZ77)、bzip 和 compress 就是这样工作的。

2. 统计(熵)压缩算法。这组算法使用消息中不同字符出现的频率来压缩信息。该组算法包括算术和前缀编码算法(使用 Shannon-Fanno、Huffman、正割树)。brotli 数据压缩算法将霍夫曼编码与 LZ 算法结合使用。

3.差分算法。信息转换算法(包括字典的使用)可以被挑出来作为一个单独的组。该组算法通常不直接压缩信息,但它们 芬兰手机号码列表 的使用大大简化了使用流和熵算法的进一步压缩。SDCH(VCDIFF)算法正是使用字典和信息的差分编码。

流算法

运行长度编码 (RLE) 是最简单和最常见的数据压缩算法之一

电话号码列表

在此算法中,一系列重复的字符被替换为一个字符及其重复次数。

例如字符串“AAAAA”,需要5个字节存储(假设分配一个字节存储一个字符),可以用两个字节组成的“5A”代替。显然,该算法效率更高,重复序列越长,原始(编码)文本中的重复次数越多。

该算法的主要缺点是它对非重复字符 cz 列表 序列的效率极低。例如,如果我们考虑序列“ABABAB”(6 字节),那么应用 RLE 算法后,它将变成“1A1B1A1B1A1B”(12 字节)。有多种方法可以解决不重复字符的问题。

与 RLE 算法不同,LZ 算法(该名称来自作者Abraham Lempel 和Jacob Ziv)不对字符重复次数进行编码,而是对之前遇到的字符序列进行编码。在所考虑的算法的操作过程中,动态创建一个表,其中包含已经遇到的序列及其相应代码的列表。这张表常被称为字典,对应的算法组称为dictionary-streaming。该组的优点包括与 RLE 相比具有更高的压缩效率。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注