以秒为单位表示的Unix时间戳如下所示(当然是四舍五入)
1409134929
问题在于我们的系统受到内存的限制,我们每秒都会生成并存储一个时间戳。它们是逐个随机访问的,所以"整个"压缩不会起作用。
Smaz没有帮助,因为它只压缩短字符串, LZMA 都不会削减它。
是否有一些特殊的压缩算法或字典技术来实现这种类型的压缩?
答案 0 :(得分:3)
不要使用字符串而是使用二进制值。 POSIX时间戳(EPOCH)存储在32位值中(至少在32位PC上)。
如果char类型使用32位内存插槽,则将时间戳存储在字符串上可能需要9x8bit = 72bits或最多9x32bits = 288bits。
您的解决方案是获取字符串的二进制形式。
这里你将得到二进制文件:
如果您使用C语言,请查看mktime功能。