如何压缩Unix时间戳?

时间:2014-08-27 10:27:49

标签: compression unix-timestamp

以秒为单位表示的Unix时间戳如下所示(当然是四舍五入)

1409134929

问题在于我们的系统受到内存的限制,我们每秒都会生成并存储一个时间戳。它们是逐个随机访问的,所以"整个"压缩不会起作用。

Smaz没有帮助,因为它只压缩短字符串, LZMA 都不会削减它。

是否有一些特殊的压缩算法或字典技术来实现这种类型的压缩?

1 个答案:

答案 0 :(得分:3)

不要使用字符串而是使用二进制值。 POSIX时间戳(EPOCH)存储在32位值中(至少在32位PC上)。

如果char类型使用32位内存插槽,则将时间戳存储在字符串上可能需要9x8bit = 72bits或最多9x32bits = 288bits。

您的解决方案是获取字符串的二进制形式。

这里你将得到二进制文件:

Binary EPOCH

如果您使用C语言,请查看mktime功能。