|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrew Kulinich 2:4626/15.34 16 Jan 2003 00:01:40 To : Artem Chuprina&All Subject : ?: || if -------------------------------------------------------------------------------- Однажды Artem Chuprina писал Владимиp Гpебнев. И тут пришел я. ВГ>> А чем отличается $page=$page?$page:1; от unless ($page){$page=1;} ВГ>> ? :) AC> Hичем. И то, и другое дает один и тот же результат неоптимальным AC> способом. Пожалуй сначала задам вопрос, а если я прав, то это будет моим аргументом. скрипт(правда в условиях постоянного false $page, чтоб срабатываний обеих конструкций было больше) -- #!/usr/bin/perl use warnings; use strict; use Benchmark qw /cmpthese/; my $page; cmpthese (-2, { '||=' => sub{$page ||= 1; undef $page;}, unless => sub{$page = 1 unless $page; undef $page;} } ); -- выдает -- Benchmark: running unless, ||=, each for at least 2 CPU seconds... unless: 3 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 1631440.31/s (n=3416236) ||=: 1 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 1846965.25/s (n=3826912) Rate unless ||= unless 1631440/s -- -12% ||= 1846965/s 13% ---- -- This is perl, v5.6.1 built for MSWin32-x86-multi-thread Hикак не доходит формат вывода бенчмарка. Поясните, что в данном случае быстрее? Мне кажется, что в данном случае имеется ввиду, что "unless" на 12 процентов быстрее '||='. Это правильно? Или с точностью до наобормот? Что в данном случае означают символы "1631440/s"? Количество исполнений конструкции за секунду настенного времени? Что есть 1 CPU second? DIXI ... Таверна 'Серая радость' --- [+++++++++++++++++++++++++***] * Origin: Посинение трупа является первым признаком смерти. (2:4626/15.34) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33393e25cf4f.html, оценка из 5, голосов 10
|