std regexp производительность
От: reversecode google
Дата: 10.01.22 00:30
Оценка: 14 (1)
наверняка не все следят за темой с++
народ на реддите решил померить производительность разных regexp
link

результат

самый худший для std::regexp
за ним boost regexp

чуть лучше для rust
и совсем все хорошо для google и нескольких других regexp библиотек

Re: мелковаты
От: незнайка.незнаек Интернет https://youtube.com/shorts/eapWB7W8hEE
Дата: 10.01.22 04:44
Оценка:
Здравствуйте, reversecode, Вы писали:

паттерны, плюс .. что они измеряли? там мелкие словарики? где xpressive — он быстрее буст регексп ?

П.С. ну и т.к. гугль по слухам стейт машину работает, то и у них она объективно для определенных выражений, и для определенных даных будет работать быстрее.
что не всегда так. то данные не те, то выражения побольше.
Отредактировано 10.01.2022 4:46 ботаныч . Предыдущая версия .
Re: std regexp производительность
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.01.22 09:13
Оценка:
Здравствуйте, reversecode, Вы писали:

R>результат

R>самый худший для std::regexp

Не удивительно, об этом писали уже N лет назад. Они динамические, с выделением памяти, нельзя создавать в цикле и т.д. и т.п. Ждём, когда комитет примет constexpr regex
Re[2]: std regexp производительность
От: reversecode google
Дата: 10.01.22 09:42
Оценка:
там есть и constexpr regexp от ханы дуськи)
ctre
Re[3]: std regexp производительность
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.01.22 10:16
Оценка:
Здравствуйте, reversecode, Вы писали:

R>там есть и constexpr regexp от ханы дуськи)

R>ctre

Ага, я видел. Она с ним несколько лет на конференциях выступает — вот как раз его, вроде, и хотят в стандарт пропихнуть. И правильно
Re[4]: std regexp производительность
От: reversecode google
Дата: 10.01.22 10:24
Оценка:
по тестам он все равно не идеал
да еще и на каком то паттерне проседает

думаю его не приймут
потому что он именно компайл тайм

паттерн может быть динамическим
Re: std regexp производительность
От: ArtDenis Россия  
Дата: 10.01.22 13:04
Оценка:
Здравствуйте, reversecode, Вы писали:

R>самый худший для std::regexp


Мало того, он любит падать при парсинге текста со stack overflow. И вообще, непонятно почему не сделают нормальную реализацию, т.к. то, что получилась какашка уже давно известно.

PS: boost::regex очень близок к нему по API и быстрее в моём случае примерно в 10-20 раз. Так что юзаю именно его.
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: std regexp производительность
От: Videoman Россия https://hts.tv/
Дата: 10.01.22 13:20
Оценка: +1
Здравствуйте, reversecode, Вы писали:

R>результат


R>самый худший для std::regexp

R>...

Не мудрено. Сам на это наступил. В одной библиотеке, форматный вывод, в котором использовался std::regexp, вдруг, стал бутылочным горлышком. Полез смотреть внутрь, а там... new на new и new погоняет, причем не во время "компиляции" регулярного выражения, а прямо во время match. Тут я офигел и понял, что стандартные регулярки нельзя использовать ни в коем случае, коме как при поиске паттерна в тексте 4ГБ и больше.
Вообще интересно, какие требования стандарта привели к такому безобразию. Как обычно представляешь себе работу regexp: сначала можем немного потерять времени при компиляции регулярки в супер-пупер оптимизированные и быстрый ДKA/HKA, а потом очень быстро используешь, типа скорость — одно сравнение на символ по таблице или около того, но не тут-то было
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.