[Moscow.pm] Склеивание строк в perl5.8

Maxim Duyunov diver на rambler-co.ru
Вс Окт 26 11:36:22 PDT 2008


Могу посоветовать использовать вариант с выводом в переменную.

'sprintf' => sub {
             my $scalar_p = '';
             for (my $i=0; $i < 1000; $i++) {
                 $scalar_p .= sprintf("%s", @test_data);
             }
             return $scalar_p;
         },

             Rate  array array_2 perl_io concat join perl_io_2 sprintf
array     41.5/s     --   -35%   -45%   -61%   -84%    -84%   -94%
array_2   63.9/s    54%     --   -15%   -40%   -75%    -75%   -90%
perl_io   74.9/s    80%    17%     --   -30%   -71%    -71%   -89%
concat     107/s   157%    67%    43%     --   -59%    -59%   -84%
join       258/s   521%   303%   244%   142%     --     -1%   -62%
perl_io_2  260/s   527%   307%   248%   144%     1%      --   -61%
sprintf    673/s  1520%   952%   798%   530%   161%    158%     --

> А мне кажется, что быстрее всего такой вариант:
> 
>        'join' => sub {
>            my $scalar_c = '';
>            for (my $i=0; $i < 1000; $i++) {
> 		$scalar_c .= join '', @test_data;
>            }
>            return $scalar_c;
>        },
> 
> И тестам тоже так кажется ;)

---
С уважением,
Дуюнов Максим.


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