use Benchmark qw( cmpthese ); # From "man perlrun": my @array = qw( Perl is a language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). ); my %tests = ( 'join' => sub { my $str = join('', @array); +1; } , 'stringify' => sub { local $" = ''; my $str = "@array"; +1; } ); print(@array . " words:\n\n"); cmpthese(-2, \%tests); print("\n\n"); splice(@array, 20); print(@array . " words:\n\n"); cmpthese(-2, \%tests); print("\n\n"); @array = (@array) x 100; print(@array . " words:\n\n"); cmpthese(-2, \%tests);
20 words: Rate stringify join stringify 155272/s -- -29% join 219556/s 41% -- 51 words: Rate stringify join stringify 83452/s -- -16% join 99407/s 19% -- 2000 words: Rate stringify join stringify 2736/s -- -3% join 2813/s 3% --
They're about the same speed, but stringification has a much bigger overhead. Better off with join.
In reply to Re^2: From Array 2 string
by ikegami
in thread From Array 2 string
by jeanluca
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |