C++:缓存 JSON 而不是对象会减少内存消耗吗?

标签 c++ json caching memory serialization

我需要在内存中缓存大量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/

相关文章:

spring - 使用 Spring 事务管理点燃事务缓存

java - 固定大小的 LinkedHashMap 内存泄漏?

c++ - 将两个排序 vector 合并为一个排序 vector

c# - Json.Net 反序列化构造函数与属性规则

javascript - 使用 SurveyJS 加载外部 JSON 时出现问题

javascript - Phaser 的 TexturePacker 设置

asp.net - 网站部署后需要强制刷新

c++ - STL 与 struct 的速度问题

c++ - 从 boost::python 中的 kwargs 中提取参数

c++ - 使用 {fmt} 和 source_location 创建基于可变参数模板的日志功能