shoorick: (Default)
[personal profile] shoorick
Из двух вариантов, одинаковых по сложности написания, надо выбирать тот, что шустрее работает. В перле скорость выполнение можно замерить средствами модуля 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 раза быстрее, чем регулярными выражениями.

Date: 2007-09-17 06:45 am (UTC)
From: [identity profile] anspa.livejournal.com
ну а как же. регэкспы вообще тормозные.

Регэкпы тормозные

Date: 2007-09-17 10:14 am (UTC)
From: [identity profile] shoorick.livejournal.com
Знаю. А тут — лишнее тому подтверждение.

Date: 2007-09-17 10:57 am (UTC)
ext_659893: Sapa (Default)
From: [identity profile] sappa.livejournal.com
Не в три, а в четыре с лишним (в данном конкретном примере).

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 21st, 2026 06:16 am
Powered by Dreamwidth Studios