|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 24 Feb 2002 02:40:10 To : Artem Chuprina Subject : Re: массив -------------------------------------------------------------------------------- "Artem Chuprina" <ran@ice.ru> wrote in message news:slrna7g21n.gmp.ran@party.ice.ru... > Здравствуй, Roman =KRoN= Karshiev. > > RKK> > А еще есть "слайсы" и функция reverse. Это я к тому говорю, чтоб > RKK> > не потянулись руки писать for ($i = $#array; $i > $#array - 5; $i--) , > RKK> что > RKK> > сразу выдаст в > RKK> > Вас недопереучившегося С-шного программиста ;-) > > RKK> Или наоборот, уже опытного перлового. > RKK> Такой вариант будет куда быстрее, чем с reverse... > > В имеющихся условиях - только если не учитывать время на написание такого > варианта и отладку ошибки на 1. Ибо если учитывать, то это ускорение никогда > не покроет лишнего времени на разработку. Ибо ну, сэкономит оно за все время > жизни скрипта 0.2 секунды... Артем, ну зачем тебе, новичку, спорить с таким "профессионалом". ;-) См. ниже: -------------------------- test.pl --------------------------- #!/usr/bin/perl -w use strict; use Benchmark; my @a = (1..1000); open NULL, "> /dev/null" or die $!; timethese 100000, { 'REVERSED SLICE' => sub { print NULL reverse @a[-10..-1]; }, 'C-LIKE' => sub { my $j = $#a - 10; for (my $i = $#a; $i > $j; $i--) { print NULL $a[$i]; } } }; ---------------------- EOF -------------------- $ ./test.pl Benchmark: timing 100000 iterations of C-LIKE, REVERSED SLICE... C-LIKE: 4 wallclock secs ( 3.63 usr + 0.00 sys = 3.63 CPU) @ 27548.21/s ( n=100000) REVERSED SLICE: 2 wallclock secs ( 1.24 usr + 0.00 sys = 1.24 CPU) @ 80645.16 /s (n=100000) ------------------------------------------------- Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65773afa5619.html, оценка из 5, голосов 10
|