2011-12-16 62 views
0

我必須從移動設備發送最小(位置)數據到服務器。爲了方便起見(PHP兼容),我不只是把它作爲一個原始查詢字符串或交的數據,我把它作爲一個變量,例如:哪一個字母是英文字母中最可壓縮的字母?

a=12345,6789 

的問題是,我應該選擇哪個字母(作爲變量的名稱而不是a),如果我想成爲互聯網上的好鄰居並創建最可壓縮的數據塊(因爲某些躍點可能使用gzip或其他壓縮)。


編輯 (對於所有的反對者在那裏)。

可實現的壓縮量取決於比特流本身。總的隨機比特流(具有最低可能的熵)是最不可壓縮的。統一的比特流(全零或全1)是最多的。

+2

你能詳細解釋一下爲什麼你認爲信件的選擇對任何事物都有影響嗎? – NPE 2011-12-16 16:10:48

回答

2

AFAIK,gzip基於huffman編碼=>經常發生的字符是壓縮時最便宜的字符。所以你應該使用POST數據中最常出現的字符。

如果'a = 12345,6789'是只有您發佈的內容,我不認爲它對變量名稱選擇什麼字符很重要。另一方面,如果您張貼更大的內容塊,則使用該內容中經常出現的字符將是最佳選擇。

0

沒關係。壓縮算法通常與語言無關。

0

字母的可壓縮性並不取決於它們的值 - 字典是在壓縮過程中構建的。

所以「aaaaaaa」應該與「nnnnnnn」一樣可壓縮,而「anaanannnan」由於其混沌模式不可壓縮。

2

不要試圖智取gzip。沒有單一的「最好」的選擇,第一,第二,數據不是英語數據無論如何。閱讀gzip如何壓縮這裏的東西:http://www.gzip.org/deflate.html其結果是它會弄清楚如何編碼你最優化的數據。如果遵循gzip所期望的模式,它將使用該模式,但它也可以爲該模塊構建最佳編碼並使用它。

不要擔心這一點。花點時間弄清楚如何發送更少的請求,並且您總體上會獲得更好的性能。

相關問題