AWK оптимизация - PullRequest
       16

AWK оптимизация

2 голосов
/ 31 июля 2010

Что не должно быть в скрипте AWK?

Я спрашиваю, так как не нахожу никакого инструмента для отладки скрипта AWK.У меня есть скрипт, занимающий много процессорного времени, поэтому мне нужно знать, что я делаю что-то ужасно неправильное со скриптом.

Просто для примера, я продолжаю искать вывод файла журнала через 'tail -f filename'Пока мой сценарий не будет убит.

Ответы [ 2 ]

2 голосов
/ 31 июля 2010

awkdb не обновлялся с 2000 года. Он также имеет некоторые ограничения, согласно веб-сайту. Если вы используете gawk и посмотрите на его справочную страницу, вы можете увидеть некоторые опции, такие как --profile, --optimize, --dump-variables и т. Д. Вы можете попробовать эти опции. Другой вариант - использовать pgawk, как указано на странице руководства.

Как правило, если ваш скрипт выполняется медленно, либо у вас ДЕЙСТВИТЕЛЬНО большой файл, либо ваш алгоритм вызывает проблему. Вы должны хотя бы показать код, который, по вашему мнению, загружает процессор. Некоторые вещи, которые вам следует избегать, если это возможно, например

  1. Вызов большого файла 2-го (или более файлов)

    awk '{}' file file

  2. Итерация файла с временем. Цикл во время итерации файла

    awk '{while ((строка getline <"file2")> 0) {})}' file

  3. Хранение значений в массивах для большой файл занимает память. Пробовать очистить некоторые элементы (или удалить массив), если не используется больше.

0 голосов
/ 31 июля 2010

Я никогда не использовал его, но есть awkdb. Будьте бдительны.

Если вы используете gnu awk, в последних версиях есть --profile или pgawk, которые должны как минимум сообщать вам, что происходит на абстрактном уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...