#objective-c #regex #performance #nsregularexpression
#objective-c #регулярное выражение #Производительность #nsregularexpression
Вопрос:
Просто любопытно. Кто-нибудь знает временную эффективность NSRegularExpression с использованием метода matchesForString:options:error? Я прочитал в Интернете об эффективности других реализаций, но мне еще предстоит найти что-либо конкретное о NSRegularExpression.
http://www.johndcook.com/blog/2011/01/20/efficiency-of-regular-expressions/
Например, учитывая регулярное выражение: b(?:x1|x2|...xn)b
где x1, x2 … xn представляет собой набор из n различных простых буквенных шаблонов, какова временная сложность этого поиска?
Комментарии:
1. Это полностью зависит от сложности регулярного выражения.
2. Существуют бесплатные интернет-инструменты, которые могут протестировать ваше регулярное выражение. Это не будет идеально соответствовать реализации NSRegularExpression, но все, что действительно имеет значение, — это различия на порядки. Однако сначала вы должны спросить себя, действительно ли это будет узким местом в вашем приложении. Если нет, используйте самое чистое и удобное в обслуживании решение.
3. Основываясь на том, что сказал @CrimsonChris, пока не возникнет проблема с производительностью, напишите максимально четкий код. Если есть проблема с производительностью, изучите ее в инструментах, найдите виновника и исправьте. Предварительная оптимизация — это огромная потеря времени, которое можно было бы потратить с большей пользой. Почти всегда виновником является неожиданный код.