|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vlad 2:5020/400 20 Nov 2002 14:13:09 To : All Subject : map и foreach --------------------------------------------------------------------------------
Привет всем!
Кто может подсказать, почему map работает медленнее прямого перебора
массива? И почему sort оказывает такое сильное влияние на скорость
работы map (попробуйте закомментировать строку с сортировкой)?
Вот код:
#!/usr/bin/perl
use strict;
use Time::HiRes qw(tv_interval gettimeofday);
my $words = "a b c a b c c d ftg g htg ftg tgtg gg h rg tg t t tg yg " x 12000;
my @words = split /\s+/, $words;
@words = sort(@words);
my %words_2 = ();
my $t1 = [gettimeofday];
foreach (@words) {
if (defined $words_2{$_}) {
$words_2{$_} ++;
}
}
print "simple: ",tv_interval($t1, [gettimeofday]), " sec.\n";
my %words_1 = ();
my $t0 = [gettimeofday];
map {$words_1{$_}++} @words;
print "map: ",tv_interval($t0, [gettimeofday]), " sec.\n";
--
Best regards,
VLAD
mailto:vlad@niko.kiev.ua
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: NIKO (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/63032e505a01.html, оценка из 5, голосов 10
|