Бегом марш!

Sep 17, 2007 12:27

Из двух вариантов, одинаковых по сложности написания, надо выбирать тот, что шустрее работает. В перле скорость выполнение можно замерить средствами модуля Benchmark. Пробуем:
#!/usr/bin/perl -w
use strict;

use Benchmark qw(:all);

my $long = 'c_documents_and_settings_administrator_moi_dukumenty_files_very_very_very_long_name.doc';
my $short;

cmpthese(1e6, {
'regexp' => sub { $short = $1 if ($long =~ /(.{1,25})$/); },
'substr' => sub { $short = substr $long, -25 },
});
Получаем:
Rate regexp substr
regexp 315271/s -- -77%
substr 1361702/s 332% --
То есть, получение хвоста строки функцией substr осуществляется в 3 раза быстрее, чем регулярными выражениями.

скорость, программизм, perl, benchmark

Previous post Next post
Up