нагрузить ли опция --slurp
весь ввод в память перед обработкой его или она была оптимизирована как-то для того, чтобы избежать этого?использование памяти --slurp опции JQ в
1
A
ответ
2
Ответ на этот вопрос по существу «да». Такие команды, как «jq --slurp. FILE ....», хранят анализируемый вход в виде массива в памяти. Для этого часто требуется больше памяти, чем размер самого входа - рассмотрим, например, что объекты JSON хранятся в виде хеш-таблиц.
С JQ 1.5 часто есть лучшие альтернативы, чем «прихлебывая» на входе. В частности, может быть, inputs
фильтр работает очень хорошо с reduce
и foreach
. (Если вы используете inputs
, тогда не забывайте, что вы, вероятно, захотите вызвать jq с опцией «-n».)
Смежные вопросы
- 1. Slurp файл в Python
- 2. Интерполирующие строки Использование jq
- 3. Использование экспоненциальных мощностей в jq
- 4. Использование выхода jq в json2csv
- 5. Использование детей селектор в JQ
- 6. Использование JQ "нормализовать" JSON
- 7. Slurp INI-файл в CFML
- 8. Текстовый файл Slurp в Haskell
- 9. Python файла Slurp
- 10. Perl6 :: Slurp of DATA
- 11. JQ
- 12. Как работает модуль Slurp Perl?
- 13. Использование опции метода в defgeneric
- 14. Использование опции mysql --unbuffered
- 15. Использование опции ffprobe '-show_format_entry'
- 16. Использование опции jqGrid emptyrecords
- 17. Аномальное потребление памяти при одновременном прослушивании JMS JQ в WSO2
- 18. Использование ng-опции
- 19. Использование опции dbCreate «validate»
- 20. Использование памяти фреймов памяти
- 21. Использование JQ для разбора JSON строки
- 22. Использование JQ для извлечения значения с кронштейном
- 23. Чтение файла в Python: slurp или filter?
- 24. Использование памяти кеш-памяти
- 25. Использование jq для подсчета на нескольких уровнях
- 26. Использование jq для фильтрации json не работает
- 27. Основные использование jq. Как получить вложенное значение
- 28. Использование JQ для доступа к вложенным массивов
- 29. Использование памяти памяти Java
- 30. Использование памяти и использование памяти процесса
Это может быть достаточно умным, чтобы знать, что если у вас есть тривиальный фильтр ('' .''), он будет знать, что это не понадобится. Но в общем, я бы этого не ожидал. Даже если бы это было возможно, как бы вы ожидали этого в целом? –
Например, фильтры, такие как 'add' и' length', могут работать без необходимости одновременного нахождения всего файла в памяти. Я использую jq много с такими фильтрами. Я мог бы «вводить» вход, хотя это немного более громоздко. У меня нет общего ожидания, меня больше интересуют практические подробности. – memeplex
Jeff - С --slurp, даже "." требует полного анализа всех входных данных (например, jq должен проверить, что вход все действителен, прежде чем он может начать что-то испускать). Основной альтернативой --slurp является «map/reduce»; например, jq может быть вызван отдельно для карты и сокращения операций. – peak