我需要在内存中缓存大量map
。每个map
将与一个用于查找的key
相关联。我计划为此使用 POCO
的缓存框架。
如果我将每个 map
序列化为 JSON
,是否会减少每个缓存项的内存占用?如果确实如此,我可以期待什么样的节省 - 10%、50%?
您会建议缓存普通对象还是 JSON
吗?
最佳答案
一般来说,是的,缓存为 JSON 比 C++ 对象在存储方面更高效。
唯一的异常(exception)是,如果您有一个带有一堆(例如 int)字段的对象,并且您将其转换为 JSON 表示形式(JSON“对象”或 JSON“数组”)作为字符值。 JSON 字符表示形式不可能像二进制字段那样紧凑,所有字段都压缩在一个对象中。
但是,如果您谈论的是包含大量指向其他对象的指针的对象(即概念性 JSON 的典型“对象”表示),那么实际的 JSON 可能会紧凑 2 倍到 8 倍。
关于C++:缓存 JSON 而不是对象会减少内存消耗吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405816/