【问题标题】:C++: does caching JSON instead of objects reduce memory consumption?C++:缓存 JSON 而不是对象会减少内存消耗吗?
【发布时间】:2012-02-23 01:22:32
【问题描述】:

我需要在内存中缓存大量的map。每个map 将与key 关联以进行查找。我打算为此使用POCO 的缓存框架。

如果我将每个map 序列化为JSON,这会减少每个缓存项的内存占用吗?如果是这样,我可以期待什么样的节省 - 10%、50%?

你会推荐缓存普通对象还是JSON

【问题讨论】:

    标签: c++ json caching memory serialization


    【解决方案1】:

    一般来说,是的,缓存为 JSON 在存储方面比 C++ 对象更有效。

    唯一的例外是,如果您有一个包含一堆(例如,int)字段的对象,并且您将其转换为 JSON 表示(JSON“对象”或 JSON“数组”)作为字符值。 JSON 字符表示不可能像二进制字段那样紧凑,所有字段都被压缩在一个对象中。

    但如果您说的对象包含大量指向其他对象的指针(即概念 JSON 的典型“对象”表示),那么实际的 JSON 可能会紧凑 2 倍到 8 倍。

    【讨论】:

    • 谢谢。在我的例子中, 是一个相对简单的 。序列化在这里有意义吗?
    • 如果您是从“地图”对象转换,那么它的开销是相当高的——如果考虑到所有内容,可能每个条目大约 30-100 个字节。很大程度上取决于您如何定义分配器——默认分配器可能位于高端。
    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 2016-08-30
    • 2023-03-18
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多