Size: a a a

2021 November 18

OP

Oleg Pronin in Modern::Perl
нет там последовательных сравнений
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ну на фоне остального перла наверное разницы заметно не будет, но...
источник

OP

Oleg Pronin in Modern::Perl
на каждый символ входной строки он проходит ровно 1 транзишен из стейта в стейт
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
о чем вы тут спорите? Там же подмножество регекспов, их в мире куча разных реализаций и многие для подмножества быстрее чем полновесное перловое
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ну и как там делается a|x|k|t
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
а для разбора роутов тем более очень узкое подмножество
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
и O(n) вполне логично
источник

OP

Oleg Pronin in Modern::Perl
для разбора роутов - да, но там под капотом полноценный я не стал оптимайзить под роуты пока.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
и картинка выше вообще на первый взгляд напоминает подход как в стековых машинах
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
ну вот если оно полноценно то было бы интересно почитать большую пдф-ку про разницу подходов и как оно получилось быстрее
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
я где-то спорил что можно быть быстрее перловых регэкспов? я только спорю что от регэкспа скорость работы не зависит мол вообщевообще
источник

OP

Oleg Pronin in Modern::Perl
и он реализован одним из возможных вариантов щас, который память кушает прилично (на роутер из 700 урлов, примерно 5 мегабайт)
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
в юри::роутер? 5 мегабайт на 700 урлов?
источник

OP

Oleg Pronin in Modern::Perl
но это связано с тем что в рантайме нет компиляции. с jit или inline::c потом в беклог себе положил сделать альтернативу, которая память почти не жрет и работать должно в несколько раз быстрее (эта реализации уже может слегка реагировать на кол-во и состав регэкспов, но в любом случае будет быстрее чем текущая)
источник

OP

Oleg Pronin in Modern::Perl
да, сейчас килобайт на стейт в DFA, там таблица транзишенов
источник

OP

Oleg Pronin in Modern::Perl
в 700 урлах которые там в бенмарке в модуле лежат 5к+ стейтов
источник

OP

Oleg Pronin in Modern::Perl
но это регэксп гигансткого масштаба, сам регэксп килобайт 40 занимает
источник

OP

Oleg Pronin in Modern::Perl
но обычно в проектах даже крупных кол-во роутов не превышает 1000
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
а, DFA это оказывается конечные автоматы.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
впервые кажется вижу как они на английском называются
источник