2
我需要在内存中缓存大量的map
。每个map
将与用于查找的key
相关联。我打算为此使用POCO
的缓存框架。C++:缓存JSON而不是对象减少内存消耗?
如果我将每个map
序列化为JSON
,是否会减少每个缓存项目的内存占用量?如果是这样,我可以期待什么样的节能 - 10%,50%?
您会推荐缓存简单对象还是JSON
?
我需要在内存中缓存大量的map
。每个map
将与用于查找的key
相关联。我打算为此使用POCO
的缓存框架。C++:缓存JSON而不是对象减少内存消耗?
如果我将每个map
序列化为JSON
,是否会减少每个缓存项目的内存占用量?如果是这样,我可以期待什么样的节能 - 10%,50%?
您会推荐缓存简单对象还是JSON
?
一般来说,是的,缓存为JSON会比C++对象更高效,更明智地存储。
唯一的例外是,如果你有一堆对象,例如int字段,并将其转换为JSON表示(JSON“object”或JSON“array”)作为字符值。 JSON字符表示不能像二进制字段那样紧凑,所有这些都在单个对象中一起进行缩放。
但是,如果你正在谈论包含许多指向其他对象的指针的对象(即,概念性JSON的典型“对象”表示),那么实际的JSON可能会更紧凑2倍到8倍之间。
谢谢。在我的情况下,
如果你正在从一个“地图”对象转换,那么这个对象的开销就会很高 - 当每件事情都被考虑时,每个条目的可能数量为30-100字节。取决于你如何定义分配器的公平程度 - 默认分配器可能会在高端。 – 2012-02-23 02:51:17