对于我的 C++ 程序,我使用 jobs.yml
,其中包含有关 yaml 格式的作业的信息,例如:
141647523:
JobType: Turbo
LocalJobID: 16773779.0
Status: Done
SystemPriority: 0.0
UserPriority: 8.0
然后我使用 yaml-cpp用于解析文件并将作业转换为 C++ Job
对象的库。由于 jobs.yml
(~900Mb) 的大小很大,我无法在程序开始时立即读取所有文件并将其存储在 RAM
中。
我怎样才能克服这个障碍?
我想我应该将 jobs.yml
转换为数据库并在程序中通过 sql
请求获取所需的数据?这种情况我该怎么办?
或者也许有更简单的解决方案?
最佳答案
yaml-cpp 有一个基于事件的 API。只需派生自 YAML::EventHandler
并使用 YAML::Parser.HandleNextDocument
。然后在您的事件处理程序中逐一处理事件。这应该可以避免将整个文件加载到 RAM 中。
关于c++ - Yaml 到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859942/