jq 的 --slurp 选项的内存使用
Memory usage of jq's --slurp option
--slurp
选项是否在处理之前将整个输入加载到内存中,或者是否以某种方式对其进行了优化以避免这种情况?
问题的答案本质上是"yes"。 "jq --slurp . FILE ...." 等命令将解析后的输入作为数组存储在内存中。这通常需要比输入本身的大小更多的内存——例如考虑 JSON 对象存储为哈希表。
对于 jq 1.5,通常有比 "slurping" 输入更好的选择。最值得注意的是,也许 inputs
过滤器与 reduce
和 foreach
配合得非常好。 (如果你确实使用 inputs
那么不要忘记你可能想要使用“-n”选项调用 jq。)
--slurp
选项是否在处理之前将整个输入加载到内存中,或者是否以某种方式对其进行了优化以避免这种情况?
问题的答案本质上是"yes"。 "jq --slurp . FILE ...." 等命令将解析后的输入作为数组存储在内存中。这通常需要比输入本身的大小更多的内存——例如考虑 JSON 对象存储为哈希表。
对于 jq 1.5,通常有比 "slurping" 输入更好的选择。最值得注意的是,也许 inputs
过滤器与 reduce
和 foreach
配合得非常好。 (如果你确实使用 inputs
那么不要忘记你可能想要使用“-n”选项调用 jq。)