При поиске в болотах: оптимизируйте!
Как упоминалось ранее, полные результаты контекстного поиска становятся очень ресурсоемкими и
занимает много времени по мере увеличения количества страниц. Уравновешивание преимуществ
перечисление контекста для этой загрузки сложно и во многом зависит от вики.
цель и пользовательская база. Предоставление нескольких вариантов поиска (например, только заголовки, регистр
чувствительный, с/без контекста, первое/все вхождение) с другой кнопкой формы
комбинации — это недорогая форма оптимизации, потому что она позволяет пользователю выбирать
уровень детализации, наиболее подходящий для ситуации.
Однако иногда стоит приложить некоторые усилия по кодированию, чтобы улучшить
производительность. Первым шагом, который следует рассмотреть, может быть попытка оптимизировать код поиска.
Тщательное изучение вашего шаблона и того, что / как вы ищете, может предложить лучшие
соответствующие параметры синтаксиса, которые могут ограничить объем текста, который должен анализироваться или как часто
шаблоны компилируются в циклах — флаг "o" для совпадающего выражения подходит к
разум. Обратите внимание, однако, что оптимизация обычно имеет издержки в виде ограничений.
которые ограничивают объем и гибкость вашей рутины, а в некоторых редких случаях могут ухудшить
производительность.
Perl содержит несколько полезных функций, которые могут оптимизировать производительность в других приложениях.
пути; например, учиться (). Подробное объяснение того, как работает эта функция, см.
1
42
НАСТРОЙКА ВАШЕЙ ВИКИ
выходит за рамки этой книги, но простое описание заключается в том, что изучение () вкладывает некоторые
время заранее, чтобы создать внутренний список вхождений символов, чтобы иметь возможность искать
только те части текста, где встречается самый редкий символ шаблона. Это действительно как
до тех пор, пока изучаемый текст остается неизменным или пока не будет определено другое исследование. Пример
использование этой функции заключается в следующем:
изучать;
м/$пат/о;
Изменение базового поискового выражения таким образом может привести к существенным или даже драматическим последствиям.
улучшение в зависимости от размера и характера искомого текста и в
конкретно по указанному шаблону поиска. Использование такого простого кода
оптимизация при поиске по всем страницам в большой вики часто значительно урезает
время ожидания пользователя.