0

我必须从移动设备向服务器发送最少(位置)数据。为方便起见(PHP 兼容性),我不只是将其作为原始查询字符串或发布数据发送,而是将其作为变量发送,例如:

a=12345,6789

a问题是,如果我想成为 Internet 上的好邻居并创建最可压缩的数据块(因为某些跃点可能使用 gzip 或其他压缩),我应该选择哪个字母(作为变量的名称而不是)。


编辑 (对于所有反对者)。

可实现的压缩量取决于比特流本身。总随机比特流(具有尽可能低的熵)是最不可压缩的。一个统一的比特流(全零或全一)是最多的。

4

4 回答 4

2

AFAIK,gzip 基于霍夫曼编码 => 经常出现的字符在压缩时是最便宜的。因此,您可能应该使用 POST 数据中出现频率最高的字符。

如果 'a=12345,6789' 是您发布的唯一内容,我认为您为变量名称选择什么字符并不重要。另一方面,如果您发布更大的内容,那么使用该内容中经常出现的字符将是最佳选择。

于 2011-12-16T16:22:44.563 回答
2

不要试图超越 gzip。没有单一的“最佳”选择,第一,第二,数据无论如何都不是英语语言数据。在此处阅读 gzip 如何压缩内容:http : //www.gzip.org/deflate.html 其结果是它将弄清楚如何以最佳方式对您提供的数据进行编码。如果它遵循 gzip 期望的模式,它将使用该模式,但它也可以为该块构建最佳编码并使用它。

不要担心这个。花时间弄清楚如何发送更少的请求,您将总体上获得更好的性能。

于 2011-12-16T16:25:14.620 回答
0

没关系。压缩算法通常与语言无关。

于 2011-12-16T16:14:22.740 回答
0

字母的可压缩性并不取决于它们的值——字典是在压缩过程中构建的。

所以“aaaaaaa”应该和“nnnnnnn”一样可压缩,而“anaanannnan”由于其混乱的模式而不是可压缩的。

于 2011-12-16T16:14:40.127 回答