33.6. Оптимизация
33.6. Оптимизация
По большей части, сценарии на языке командной оболочки, используются для быстрого решения несложных задач. Поэтому оптимизация сценариев, по скорости исполнения, не является насущной проблемой. Тем не менее, представьте себе ситуацию, когда сценарий, выполняющий довольно важную работу, в принципе справляется со своей задачей, но делает это очень медленно. Написание же аналогичной программы на языке компилирующего типа -- неприемлемо. Самое простое решение -- переписать самые медленные участки кода сценария. Возможно ли применить принципы оптимизации к сценарию на практике?
Для начала проверьте все циклы в сценарии. Основная масса времени уходит на работу в циклах. Если это возможно, вынесите все ресурсоемкие операции за пределы циклов.
Старайтесь использовать встроенные команды. Они исполняются значительно быстрее и, как правило, не запускают подоболочку при вызове.
Избегайте использования избыточных команд, особенно это относится к конвейерам.
cat "$file" | grep "$word"
grep "$word" "$file"
# Эти команды дают один и тот же результат,
#+ но вторая работает быстрее, поскольку запускает на один подпроцесс меньше.
Не следует злоупотреблять командой cat.
Для профилирования сценариев, можно воспользоваться командами time и times. Не следует пренебрегать возможностью переписать особенно критичные участки кода на языке C или даже на ассемблере.
Попробуйте минимизировать количество операций с файлами. Bash не "страдает" излишней эффективностью при работе с файлами, попробуйте применить специализированные средства для работы с файлами в сценариях, такие как awk или Perl.
Записывайте сценарии в структурированной форме, это облегчит их последующую реорганизацию и оптимизацию. Помните, что значительная часть методов оптимизации кода, существующих в языках высокого уровня, вполне применима и к сценариям, однако есть и такие, которые не могут применяться. Основной критерий здесь -- это здравый смысл.
Прекрасный пример того, как оптимизация может сократить время работы сценария, вы найдете в Пример 12-32.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Оптимизация страниц
Оптимизация страниц Модуль Оптимизация страниц
12.2.8. Оптимизация Samba
12.2.8. Оптимизация Samba Ваш Samba-сервер медленно работает, и вы уже устали от постоянных жалоб пользователей? Лучшим выходом из данной ситуации будет покупка нового винчестера. Лучше всего покупать SCSI-винчестер со скоростью 10000 оборотов в минуту. В крайнем случае подойдет
Поисковая оптимизация
Поисковая оптимизация Под поисковой оптимизацией (англ. Search Engine Optimization, SEO) понимается комплекс работ по корректировке внутреннего устройства сайта и внешних факторов с целью усиления позиции сайта по определенным запросам в поисковых системах.Поисковые системы — это
Оптимизация
Оптимизация Теперь сайт работает точно так, как и планировалось. Вы открываете доступ всем желающим, и начинается веселье.Если вы аккуратно и точно выполнили все необходимые действия, не торопясь, прошли каждый этап создания сайта, то настало время переходить к
Глава 5 Оптимизация
Глава 5 Оптимизация …ты скажи ему, что во всякой вещи надо соблюдать меру… Уильям Шекспир. Много шума из ничего «Любая задача выполнима, если она поддается измерению». Давайте поверим в данное утверждение и постараемся правильно выбрать показатели, которые будем
Оптимизация QueryInterface
Оптимизация QueryInterface Фактически реализация QueryInterface, показанная ранее в этой главе, очень проста и легко может поддерживаться любым программистом, имеющим хоть некоторое представление о СОМ и C++. Тем не менее, многие среды и каркасы приложений поддерживают реализацию,
12 Оптимизация
12 Оптимизация Преждевременная оптимизация — корень всех зол. —Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается
12 Оптимизация
12 Оптимизация Преждевременная оптимизация — корень всех зол. -Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается в
Глава 6 Оптимизация
Глава 6 Оптимизация Если с увеличением объема вашей базы данных она стала работать слишком медленно, зачастую самый простой путь решения этой проблемы – увеличение мощности аппаратной платформы сервера. Однако повысить быстродействие системы можно и без наращивания
6.2. Оптимизация запросов
6.2. Оптимизация запросов Основным способом повышения производительности запросов являются индексы. Определить, действительно ли созданные вами индексы используются запросом, позволяет командаEXPLAIN <Текст запроса>; Набор данных, выводимый командой EXPLAIN, содержит
Настройка и оптимизация
Настройка и оптимизация Установка драйверов и настройкаПосле того, как была успешно установлена операционная система Windows ХР, нам надо её настроить. Для начала, конечно, установим все драйвера. Вот в какой последовательности:• Драйвера на материнскую
Выполнение и оптимизация
Выполнение и оптимизация При разработке игр с помощью программы Flash всегда возникает вопрос о скорости. До пятой версии Flash язык программирования был недостаточно эффективным и не позволял создавать многие игры. Но даже версия 5 была довольно медленной. Достаточно
Оптимизация вызовов
Оптимизация вызовов На уровнях 2 и 3 неизбежно использование явных вызовов процедуры подобных my_polygon.set_size (5) для изменения значения атрибута. Существует опасение, что использование такого стиля на уровне 4 негативно скажется на производительности. Тем не менее компилятор
Оптимизация BIOS
Оптимизация BIOS Теперь мы переходим к основной теме данной книги. Это руководство посвящено оптимизации BIOS. Главы 3 и 4 включают сведения о различных функциях BIOS, которые вы можете найти в утилите BIOS Setup.Главы 3 и 4 предлагают различную детализацию информации. В главе 2 вы
Оптимизация фильма
Оптимизация фильма Здесь мы рассмотрим средства, предлагаемые Flash для анализа процесса загрузки и воспроизведения фильма. Благодаря им мы сможем выявить "узкие места" нашего фильма. Также мы выясним, что можно сделать, дабы наши фильмы стали компактнее и