0

モバイル デバイスから最小限の (位置) データをサーバーに送信する必要があります。便宜上 (PHP 互換性)、生のクエリ文字列や投稿データとして送信するのではなく、変数として送信します。たとえば、次のようにします。

a=12345,6789

a問題は、インターネット上で良き隣人になり、最も圧縮性の高いデータのチャンクを作成したい場合 (一部のホップは gzip やその他の圧縮を使用する可能性があるため) 、どの文字を (変数の名前として ではなく) 選択する必要があるかということです。


編集 (そこにいるすべての否定論者向け)。

達成可能な圧縮の量は、ビット ストリーム自体によって異なります。合計ランダム ビット ストリーム (可能な限り低いエントロピー) は、最も圧縮性が低くなります。均一なビット ストリーム (すべてゼロまたはすべて 1) が最も適しています。

4

4 に答える 4

2

gzip の裏をかこうとしないでください。とにかく、データが英語のデータではないという「最良の」選択肢は1つも2つもありません。ここで gzip がどのように圧縮するかを読んでください: http://www.gzip.org/deflate.html その結論は、与えられたデータを最適にエンコードする方法を見つけ出すことです。gzip が期待するパターンに従う場合、そのパターンを使用しますが、そのブロックに最適なエンコーディングを構築して使用することもできます。

これについては心配しないでください。送信するリクエストの数を減らす方法を見つけることに時間を費やすと、全体的にパフォーマンスが向上します。

于 2011-12-16T16:25:14.620 に答える
2

私の知る限り、gzipはハフマンコーディングに基づいています=>頻繁に発生する文字は圧縮時に最も安価です。したがって、おそらく POST データで最も頻繁に出現する文字を使用する必要があります。

投稿内容が「a=12345,6789」だけなら変数名は何文字でも構わないと思います。一方、投稿するコンテンツの量が多い場合は、そのコンテンツに頻繁に登場するキャラクターを使用するのが最適です。

于 2011-12-16T16:22:44.563 に答える
0

それは問題ではありません。通常、圧縮アルゴリズムは言語に依存しません。

于 2011-12-16T16:14:22.740 に答える
0

文字の圧縮率は、その値自体には依存しません。辞書は圧縮中に構築されます。

したがって、「aaaaaaa」は「nnnnnnn」と同じくらい圧縮可能である必要がありますが、「anaanannnan」はその無秩序なパターンのために圧縮可能ではありません。

于 2011-12-16T16:14:40.127 に答える