我需要在内存中缓存大量map
。每个map
都会与key
相关联以进行查找。我打算使用POCO
的缓存框架。
如果我将每个map
序列化为JSON
,那会减少每个缓存项目的内存占用量吗?如果确实如此,我可以期待什么样的节约 - 10%,50%?
您是否建议缓存普通对象或JSON
?
答案 0 :(得分:2)
通常,是的,作为JSON的缓存在存储方面比C ++对象更有效。
唯一的例外是如果你有一个带有一堆的对象,例如int字段,你将它转换为JSON表示(JSON" object"或JSON" array&#34 ;)作为字符值。 JSON字符表示法不能像二进制字段那样紧凑,所有字符串都在一个对象中拼凑在一起。
但如果您正在谈论包含大量指向其他对象的对象(即典型的"对象"概念JSON的表示),那么实际的JSON可能会在2倍到8倍之间紧凑。