jq 的 --slurp 选项的内存使用

Memory usage of jq's --slurp option

--slurp 选项是否在处理之前将整个输入加载到内存中,或者是否以某种方式对其进行了优化以避免这种情况?

问题的答案本质上是"yes"。 "jq --slurp . FILE ...." 等命令将解析后的输入作为数组存储在内存中。这通常需要比输入本身的大小更多的内存——例如考虑 JSON 对象存储为哈希表。

对于 jq 1.5,通常有比 "slurping" 输入更好的选择。最值得注意的是,也许 inputs 过滤器与 reduceforeach 配合得非常好。 (如果你确实使用 inputs 那么不要忘记你可能想要使用“-n”选项调用 jq。)