- Возможен предварительный запуск программы?, universite, 13:41 , 28-Мрт-19 (1)
> Доброго! > Допустим в скрипте работает цикл с проверкой, к примеру, строки из ps > -ef и некоторой задержкой по sleep. В цикле используются grep, awk > и др. Поясните, bash один раз грузит с диска проги используемые > внутри цикла или при каждом повторе цикла? Если второе, то можно > ли предварительно загрузить их в память, дабы не дёргать каждый раз > винт и тем самым увеличить быстродействие? RAM диск не рассматриваем. > Спасибо.Это зависит от планировщика системы. При сильном желании, bash скрипт можно скомпиллировать в исполнительный бинарник.
- Возможен предварительный запуск программы?, Andrey Mitrofanov, 14:03 , 28-Мрт-19 (2)
> Доброго! > Допустим в скрипте работает цикл с проверкой, к примеру, строки из ps > -ef и некоторой задержкой по sleep. В цикле используются grep, awk > и др. Поясните, bash один раз грузит с диска проги используемые > внутри цикла или при каждом повторе цикла?Да с диска. И нет, не совсем с диска. Если все блоки, нужные для запуска бинарей при очередном запуске _ещё_ лежат в кеше ОС, то запуск будет практически как из RAM-диска. Если "кеши вымылись" /сбросились, будет чтение бинарей с дискового устройства... Создание процессов, пйапов, динамическая линковка с библиотеками, чтение/перечитывание прогами их конфигов (буде надобность в таковых обнаружится), что-то ещё может быть... происходит при каждом запуске. ...и результаты всего этого выбрасываются каждый раз, как конвейер с-под шела отработает. >RAM диск не рассматриваем. Прыгать в обручи? Как высоко изволите?
- Возможен предварительный запуск программы?, Pahanivo, 17:17 , 28-Мрт-19 (3)
Вообще подход конечно интересный .... ворочить скриптом тулзы, и при этом парится за быстродействие, хм, однако. Если уж хочетсо парсить текст без костылей - есть перл, если судить по циклическому парсингу - можно натравить нужный stdout на конвейер ... тут требуется прояснить исходные условия задачи для выработки вектора пинка в нужную сторону.
- Возможен предварительный запуск программы?, Hikolaich, 21:01 , 28-Мрт-19 (4)
Интерес чисто теоретический и возник во время написания скрипта для Orange PI H6 с OS от производителя, где драйверов практически нет, а потребовалось синхронизировать время со спутников. Использовать Gpsd ради редких перезагрузок посчитал не рациональным, пошёл таким путём GNSS > ds3231 > hwclock > systemtime. Цикл проверяет только поступление данных с GNSS, задержка 0.01 сек, далее парсер и разово отправка в ds3231. Супер точного времени мне не надо. Работой скрипта доволен и быстродействие вполне устраивает. Изучать и писать на перле, си, ради разовой потребности не вижу смысла, мне и баша достаточно от засыхания мозгов на пенсии. Повторю, вопрос был чисто из любопытства. Спасибо ответившим.
- Возможен предварительный запуск программы?, And, 15:09 , 30-Мрт-19 (5)
> писать на перле, си, ради разовой потребности не вижу смысла, мне > и баша достаточно от засыхания мозгов на пенсии. > Повторю, вопрос был чисто из любопытства. Спасибо ответившим.Если нужна скорость, то совет глянуть в сторону средств Баша работы с переменными, вместо Sed, Awk и прочих утилит, на вызов которых надо вызывать +1 подкапотный экземпляр шелла и подобное. Скорость заметно отличается на глаз. Кроме того, обратить внимание, сколько экземпляров, чего именно и в каких случаях вызывается +n дополнительных раз. В числе прочего, типа вот это использовать, например: https://wiki.bash-hackers.org/syntax/pe https://www.shellscript.sh/tips/pattern-substitution/ https://www.cyberciti.biz/tips/bash-shell-parameter-substitu...
|