Я играю с study, функцией Perl, чтобы исследовать строку, чтобы сделать последующие регулярные выражения потенциально намного более быстрыми:
while( <> ) {
study;
$count++ if /PATTERN/;
$count++ if /OTHER/;
$count++ if /PATTERN2/;
}
Там не сказано много о том, какие ситуации выиграют от этого. Несколько вещей, которые вы можете использовать из документов:
- Шаблоны с постоянными строками
- Несколько шаблонов
- Более короткие целевые строки могут быть лучше (требуется меньше времени для изучения)
Я ищу конкретные случаи, когда я могу не только продемонстрировать большое преимущество, но и случаи, которые я могу немного настроить, чтобы потерять это преимущество. Одним из предупреждений в документах является то, что вы должны сравнивать отдельные случаи. Я хочу найти некоторые из краевых случаев, когда небольшая разница в строке (или шаблоне) имеет большое значение в производительности.
Если вы не использовали study, не отвечайте. Я бы предпочел правильно сформировать правильные ответы вместо быстрых догадок. Здесь нет никакой срочности, и это не держит никакой работы.
И, в качестве бонуса, я играл с бенчмаркингом, сравнивая два прогона NYTProf, которые я бы предпочел использовать, чем обычный инструмент бенчмаркинга. Если я придумаю способ автоматизировать это, я тоже поделюсь этим.