我有一个很大的(~2Gb)yaml
文件。我使用yaml-cpp
库和YAML::Loadfile
函数。但我有一个RAM短缺的问题。
将这个文件拆分成几个小文件的最简单方法是将每个小文件作为有效的yaml
文件(可能是linux的功能)?
答案 0 :(得分:2)
如果您的文件中有多个文档,那么您可以在该行的开头---
分割。
如果您没有多个文档(或者如果您有多个文档,但它们仍然太大),您的文档可能在顶层或序列中有映射(理论上您也可以有多行文档)标量,但这不太可能)。
如果文档的顶层具有流样式(使用{ }
进行映射,使用[ ]
进行排序),则事情非常依赖于布局的方式。但如果它具有块样式,那么您可以轻松找到顶层映射的各个键或序列的元素。它们都与第一个元素具有相同的缩进(很可能是零缩进)。
根据上述信息拆分您的YAML文档,并自行处理每个元素。