производительность glibc regexp - PullRequest
0 голосов
/ 19 мая 2009

Кто-нибудь имеет опыт измерения функций glibc regexp? Есть ли какие-либо общие тесты, которые мне нужно выполнить, чтобы выполнить такие измерения (в дополнение к тестированию точных паттернов, которые я собираюсь найти)?

Спасибо.

Ответы [ 3 ]

1 голос
/ 07 января 2010
1 голос
/ 01 мая 2010

Используете ли вы рукописное сравнение по символам, стандартные функции сопоставления строк или интеллектуальные алгоритмы сопоставления текста?

Особенно в первом случае переключение на регулярное выражение может быть даже быстрее, в зависимости от типа регулярного выражения и используемой вами библиотеки (не только glibc, но и множество других библиотек: PCRE, перечисленных здесь и многое другое).

0 голосов
/ 17 июня 2009

Производительность регулярного выражения во многом зависит от того, какое регулярное выражение вы используете и к каким данным вы его применяете. Нет никакого смысла просто сравнивать регулярные выражения. Вы должны сравнить фактический код с помощью регулярных выражений и фактической альтернативы C на ваших реальных данных.

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

...