[Moscow.pm] Не думал что регулярные выражения настолько быстры (или substr такой медленный...)

Andrew Shitov andy на shitov.ru
Ср Дек 24 10:28:40 PST 2008


> if ( substr( $phone, 0, 1 ) == 7 )
> глянув на эту строчку я немного поморщился из-за потери читабельности, что и

Читаемость-то тут вполне нормальная, особенно если переставить части
равенства и поубирать скобки:

if (7 == substr $phone 0, 1)

А вот разрыв в производительности можно сделать куда большим, если
вместо числового сравнения использовать строковое.

1) substr( $phone, 0, 1 ) == 7
            Rate  regex substr
regex  2656374/s     --   -17%
substr 3191475/s    20%     --


2) substr( $phone, 0, 1 ) eq 7

            Rate  regex substr
regex  2335714/s     --   -36%
substr 3661366/s    57%     --

-- 
Andrew Shitov
______________________________________________________________________
andy на shitov.ru | http://shitov.ru


Подробная информация о списке рассылки Moscow-pm