- RU.PERL ----------------------------------------------------------- RU.PERL - Msg : #3562 [639] От : Artem Chuprina 2:5020/400 16 мая 04, 06:29 Кому : Serge Chervjakov 16 мая 04, 20:25 Тема : Re: Проверка на вхождение в массив ------------------------------------------------------------------------------- From: Artem ChuprinaSerge Chervjakov -> Artem Chuprina @ Sat, 15 May 2004 21:19:37 +0000 (UTC): SC>>> Есть такая хорошая штука - perldoc Benchmark SC>>> называется. Рекомендую всегда обращаться к ней, делая подобные SC>>> заявления, что что-то работает быстрее чего-то. Код тестов SC>>> достаточно большой вышел, потому сюда кидать не буду, но у меня SC>>> получилось что map отработал в примерно 6 раз быстрее. Попробуй у SC>>> себя проделать то же самое. Полезно:). AC>> Ты все-таки код-то приведи. Hа предмет сравнения условий. SC> Код куда-то потерял... потому прямо сюда вобью, могу и ошибиться где.. SC> sub m SC> { SC> my @mas=(1..10000); SC> my %hash; SC> %hash=map {$_,$_} @mas; SC> } SC> sub f SC> { SC> my @mas=(1..10000); SC> my %hash; SC> for (my $i=0; $i<10000; $i++) { SC> $hash{$mas[$i]}=$mas[$i]; SC> } SC> } SC> тут с бенчмарком комбинация проводится... Скажем так, буквально на этом же тесте (я добавил только после заполнения хэша обращение к его элементу и перестал называть первую функцию именем перлового оператора) for выиграл в три раза (47 секунд против 134). А для честного теста надо бы еще хэш оттуда убрать. Операции-то списковые, при чем бы тут хэш? -- Artem Chuprina RFC2822: , FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400)