33.6. Оптимизация

33.6. Оптимизация

По большей части, сценарии на языке командной оболочки, используются для быстрого решения несложных задач. Поэтому оптимизация сценариев, по скорости исполнения, не является насущной проблемой. Тем не менее, представьте себе ситуацию, когда сценарий, выполняющий довольно важную работу, в принципе справляется со своей задачей, но делает это очень медленно. Написание же аналогичной программы на языке компилирующего типа -- неприемлемо. Самое простое решение -- переписать самые медленные участки кода сценария. Возможно ли применить принципы оптимизации к сценарию на практике?

Для начала проверьте все циклы в сценарии. Основная масса времени уходит на работу в циклах. Если это возможно, вынесите все ресурсоемкие операции за пределы циклов.

Старайтесь использовать встроенные команды. Они исполняются значительно быстрее и, как правило, не запускают подоболочку при вызове.

Избегайте использования избыточных команд, особенно это относится к конвейерам.

cat "$file" | grep "$word"

grep "$word" "$file"

# Эти команды дают один и тот же результат,

#+ но вторая работает быстрее, поскольку запускает на один подпроцесс меньше.

Не следует злоупотреблять командой cat.

Для профилирования сценариев, можно воспользоваться командами time и times. Не следует пренебрегать возможностью переписать особенно критичные участки кода на языке C или даже на ассемблере.

Попробуйте минимизировать количество операций с файлами. Bash не "страдает" излишней эффективностью при работе с файлами, попробуйте применить специализированные средства для работы с файлами в сценариях, такие как awk или Perl.

Записывайте сценарии в структурированной форме, это облегчит их последующую реорганизацию и оптимизацию. Помните, что значительная часть методов оптимизации кода, существующих в языках высокого уровня, вполне применима и к сценариям, однако есть и такие, которые не могут применяться. Основной критерий здесь -- это здравый смысл.

Прекрасный пример того, как оптимизация может сократить время работы сценария, вы найдете в Пример 12-32.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Оптимизация QueryInterface

Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

Оптимизация QueryInterface Фактически реализация QueryInterface, показанная ранее в этой главе, очень проста и легко может поддерживаться любым программистом, имеющим хоть некоторое представление о СОМ и C++. Тем не менее, многие среды и каркасы приложений поддерживают реализацию,


12 Оптимизация

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

12 Оптимизация Преждевременная оптимизация — корень всех зол. —Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается


12 Оптимизация

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

12 Оптимизация Преждевременная оптимизация — корень всех зол. -Ч. Хоар Данная глава очень короткая, поскольку главное, чему учит опыт Unix относительно оптимизации производительности, — как узнать, когда не следует выполнять оптимизацию. Второстепенный урок заключается в


Оптимизация вызовов

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Оптимизация вызовов На уровнях 2 и 3 неизбежно использование явных вызовов процедуры подобных my_polygon.set_size (5) для изменения значения атрибута. Существует опасение, что использование такого стиля на уровне 4 негативно скажется на производительности. Тем не менее компилятор


Оптимизация

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

Оптимизация Теперь сайт работает точно так, как и планировалось. Вы открываете доступ всем желающим, и начинается веселье.Если вы аккуратно и точно выполнили все необходимые действия, не торопясь, прошли каждый этап создания сайта, то настало время переходить к


Глава 5 Оптимизация

Из книги Веб-Самоделкин. Как самому создать сайт быстро и профессионально автора Гладкий Алексей Анатольевич

Глава 5 Оптимизация …ты скажи ему, что во всякой вещи надо соблюдать меру… Уильям Шекспир. Много шума из ничего «Любая задача выполнима, если она поддается измерению». Давайте поверим в данное утверждение и постараемся правильно выбрать показатели, которые будем


Оптимизация страниц

Из книги Прибыльный блог: создай, раскрути и заработай автора Литвин Евгений

Оптимизация страниц Модуль Оптимизация страниц


Поисковая оптимизация

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Поисковая оптимизация Под поисковой оптимизацией (англ. Search Engine Optimization, SEO) понимается комплекс работ по корректировке внутреннего устройства сайта и внешних факторов с целью усиления позиции сайта по определенным запросам в поисковых системах.Поисковые системы — это


12.2.8. Оптимизация Samba

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

12.2.8. Оптимизация Samba Ваш Samba-сервер медленно работает, и вы уже устали от постоянных жалоб пользователей? Лучшим выходом из данной ситуации будет покупка нового винчестера. Лучше всего покупать SCSI-винчестер со скоростью 10000 оборотов в минуту. В крайнем случае подойдет


Глава 6 Оптимизация

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Глава 6 Оптимизация Если с увеличением объема вашей базы данных она стала работать слишком медленно, зачастую самый простой путь решения этой проблемы – увеличение мощности аппаратной платформы сервера. Однако повысить быстродействие системы можно и без наращивания


6.2. Оптимизация запросов

Из книги Домашний компьютер автора Кравцов Роман

6.2. Оптимизация запросов Основным способом повышения производительности запросов являются индексы. Определить, действительно ли созданные вами индексы используются запросом, позволяет командаEXPLAIN <Текст запроса>; Набор данных, выводимый командой EXPLAIN, содержит


Оптимизация фильма

Из книги Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript автора Розенцвейг Гэри

Оптимизация фильма Здесь мы рассмотрим средства, предлагаемые Flash для анализа процесса загрузки и воспроизведения фильма. Благодаря им мы сможем выявить "узкие места" нашего фильма. Также мы выясним, что можно сделать, дабы наши фильмы стали компактнее и


Настройка и оптимизация

Из книги Создание игр для мобильных телефонов автора Моррисон Майкл

Настройка и оптимизация Установка драйверов и настройкаПосле того, как была успешно установлена операционная система Windows ХР, нам надо её настроить. Для начала, конечно, установим все драйвера. Вот в какой последовательности:• Драйвера на материнскую


Выполнение и оптимизация

Из книги Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам автора Вонг Адриан

Выполнение и оптимизация При разработке игр с помощью программы Flash всегда возникает вопрос о скорости. До пятой версии Flash язык программирования был недостаточно эффективным и не позволял создавать многие игры. Но даже версия 5 была довольно медленной. Достаточно


Оптимизация BIOS

Из книги автора

Оптимизация BIOS Теперь мы переходим к основной теме данной книги. Это руководство посвящено оптимизации BIOS. Главы 3 и 4 включают сведения о различных функциях BIOS, которые вы можете найти в утилите BIOS Setup.Главы 3 и 4 предлагают различную детализацию информации. В главе 2 вы