【发布时间】:2014-05-18 17:43:19
【问题描述】:
我正在为内存有限的嵌入式系统开发 Qt 应用程序。我需要接收几兆字节的 JSON 数据并尽可能快地解析它,并且不占用太多内存。
我在考虑使用流:
JSON 源(HTTP 客户端)---> ZIP 解压器 ---> YAML 解析器 ----> 映射到数据库的对象
数据从网络到达的速度比我解析它的速度要慢得多。
- yaml-cpp 解析 1MB 数据需要多少内存?
- 我希望在创建映射到数据库的对象后立即释放来自解压缩器的原始数据和 YAML 解析器用于该数据的内部内存。有可能吗?
- yaml-cpp 是否支持异步解析?因此,一旦 JSON 对象被解析,我就可以将其存储在数据库中,而无需等待来自 HTTP 源的完整内容。
【问题讨论】:
-
你收到多少个对象?每个对象有多少属性?每个属性的平均大小?我的 yaml-cpp 能够在它们进来时一次解析一个对象?你收到的是 JSON 还是 YAML?
-
我可以收到几千个对象。它可以很容易地成为 7MB 的文本。我使用 JSON,它是 YAML 1.2 的一个子集,可以用 yaml-cpp 解析。我不知道 yaml-cpp 是否能够在它们进入时一次解析一个对象,因为这是我的问题的一部分:)