2014-08-27 83 views
1

以秒錶示Unix時間戳是這樣(四捨五入當然)如何壓縮Unix時間戳?

1409134929 

的問題在於,我們的系統是由內存的限制,我們正在生成並存儲時間戳的每一秒。他們被隨機訪問一個接一個,所以一個「整體」壓縮將無法工作。

Smaz不會幫助,因爲它只壓縮短字符串,LZMA都不會削減它。

是否有一些特殊的壓縮算法或字典技術來實現這種類型的壓縮?

回答

3

不要使用字符串,而要使用二進制值。 POSIX時間戳(EPOCH)存儲在一個32位值(至少在32位PC上)。

如果字符類型使用32位內存插槽,則將字符串存儲在9x8bit = 72bits或高達9x32bits = 288bits。

您的解決方案是獲取字符串的二進制形式。

在這裏,您將在二進制得到什麼:

Binary EPOCH

如果您使用C語言,請大家看看到mktime功能。

+0

謝謝。沒有想到這種方法。設法將一個長度爲11個字節的單個時間戳減至4個字節! – user3981598 2014-08-27 11:05:05