host.md 3.6 KB

内存占用对比(Host)

更新时间:2026-03-23 23:39:33

说明:

  • host 与 QEMU 结果可能不同:平台 ABI 与对齐规则差异会改变结构体布局与 padding。
  • 即使同为 32 位,x86(i386) 与 ARM EABI 的 double/uint64_t 对齐也可能不同。
  • 需要严格一致时,请以 QEMU 结果为准,或在同一 ABI/工具链下对比。

malloc 头部空间=12 字节,对齐=8 字节

用例 文本长度 RyanJson 内存 cJSON 内存 yyjson 内存 相比 cJSON 节省% 相比 yyjson 节省%
混合对象 2265 7932 15940 8860 50.24% 10.47%
经典天气对象 3991 11784 23276 13024 49.37% 9.52%
深度数组 1205 6380 11796 5112 45.91% -24.80%
小型混合对象 90 260 560 692 53.57% 62.43%
小型字符串对象 100 280 692 692 59.54% 59.54%
压缩业务对象 551 2052 5032 3064 59.22% 33.03%

malloc 头部空间=12 字节,对齐=4 字节

用例 文本长度 RyanJson 内存 cJSON 内存 yyjson 内存 相比 cJSON 节省% 相比 yyjson 节省%
混合对象 2265 7612 15444 8860 50.71% 14.09%
经典天气对象 3991 11540 22172 13024 47.95% 11.39%
深度数组 1205 6012 11540 5112 47.90% -17.61%
小型混合对象 90 256 540 692 52.59% 63.01%
小型字符串对象 100 276 656 692 57.93% 60.12%
压缩业务对象 551 2040 4952 3064 58.80% 33.42%

malloc 头部空间=8 字节,对齐=8 字节

用例 文本长度 RyanJson 内存 cJSON 内存 yyjson 内存 相比 cJSON 节省% 相比 yyjson 节省%
混合对象 2265 7292 14948 8852 51.22% 17.62%
经典天气对象 3991 11300 21068 13016 46.36% 13.18%
深度数组 1205 5644 11284 5104 49.98% -10.58%
小型混合对象 90 252 520 676 51.54% 62.72%
小型字符串对象 100 272 620 676 56.13% 59.76%
压缩业务对象 551 2028 4872 3056 58.37% 33.64%

malloc 头部空间=8 字节,对齐=4 字节

用例 文本长度 RyanJson 内存 cJSON 内存 yyjson 内存 相比 cJSON 节省% 相比 yyjson 节省%
混合对象 2265 6744 13920 8848 51.55% 23.78%
经典天气对象 3991 10284 19680 13012 47.74% 20.97%
深度数组 1205 5256 10512 5100 50.00% -3.06%
小型混合对象 90 228 484 672 52.89% 66.07%
小型字符串对象 100 244 580 672 57.93% 63.69%
压缩业务对象 551 1812 4328 3052 58.13% 40.63%

malloc 头部空间=4 字节,对齐=4 字节

用例 文本长度 RyanJson 内存 cJSON 内存 yyjson 内存 相比 cJSON 节省% 相比 yyjson 节省%
混合对象 2265 5876 12396 8844 52.60% 33.56%
经典天气对象 3991 9036 17384 13008 48.02% 30.54%
深度数组 1205 4500 9484 5096 52.55% 11.70%
小型混合对象 90 200 428 668 53.27% 70.06%
小型字符串对象 100 212 508 668 58.27% 68.26%
压缩业务对象 551 1584 4024 3048 60.64% 48.03%