[Moscow.pm] Не думал что регулярные выражения настолько быстры (или substr такой медленный...)
Denis Evdokimov
evdokimov.denis на gmail.com
Ср Дек 24 10:54:08 PST 2008
Что-то у меня сильно результаты скачут.
Видимо тут слишком большие погрешности.
Несколько раз запускал вот этот код
use strict;
use warnings;
use Benchmark qw(:all);
my $phone = '70123456789';
my $vs = {
regex => sub {
if ( $phone =~ /^7/ ) { }
},
substr_eq => sub {
if ( substr($phone, 0, 1) eq '7' ) { }
},
substr => sub {
if ( substr($phone, 0, 1) == 7 ) { }
},
};
print "Benchmark: $Benchmark::VERSION\n";
print "PERL: $]\n";
cmpthese -5, $vs;
Benchmark: 1.07
PERL: 5.008008
Rate regex substr substr_eq
regex 4361549/s -- -14% -26%
substr 5057507/s 16% -- -14%
substr_eq 5910398/s 36% 17% --
Benchmark: 1.07
PERL: 5.008008
Rate substr substr_eq regex
substr 4490439/s -- -8% -11%
substr_eq 4855446/s 8% -- -4%
regex 5040176/s 12% 4% --
Benchmark: 1.07
PERL: 5.008008
Rate substr substr_eq regex
substr 3303013/s -- -28% -28%
substr_eq 4596273/s 39% -- -0%
regex 4611086/s 40% 0% --
Benchmark: 1.07
PERL: 5.008008
Rate regex substr substr_eq
regex 3711242/s -- -5% -21%
substr 3906712/s 5% -- -17%
substr_eq 4701856/s 27% 20% --
Benchmark: 1.07
PERL: 5.008008
Rate substr regex substr_eq
substr 3789591/s -- -3% -10%
regex 3915761/s 3% -- -7%
substr_eq 4195575/s 11% 7% --
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20081224/d7c8b15b/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm