[Moscow.pm] Book: Modern Perl

Mons Anderson mons на cpan.org
Пн Ноя 29 05:47:04 PST 2010


А можно-ли посмотреть на сами тесты?
очень-уж странные результаты...

в частности по памяти:

[mons на veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Moose; }; say "+" . (vsize($$) - $a)/1024 . " k"'
+18020 k
[mons на veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Mouse; }; say "+" . (vsize($$) - $a)/1024 . " k"'
+5380 k
[mons на veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Moo; }; say "+" . (vsize($$) - $a)/1024 . " k"'
+1024 k
[mons на veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require accessors::fast; }; say "+" . (vsize($$) - $a)/1024 . " k"'
+5256 k


PS: (Proc::Vsize есть на гитхабе)

On Sunday 28 November 2010 04:03:30 Aleksey Mashanov wrote:
> На той неделе потратил не один час на то, чтобы доказать самому себе, что
> Moose можно применять для высоконагруженных приложений, в которых жалко как
> процессор, так и память. Процессор, потому что весь IO асинхронный и в io
> не тупим, память, потому что много разных процессов на одной машине.
> Результат: Mouse (это не опечатка). Бенчмарки по горячим следам публикую.
> На wallclock просьба не смотреть. Бенчмарк с виртуальной машины, так что
> wallclock побит, но использование процессора реальное. Проверял и на
> физическом сервере, результат такой же (но wallclock адекватнее).
>
> Итак, создание объекта с одним аттрибутом типа Int (для classic проверяем
> регекспом):
> Base class new()
> Benchmark: timing 500000 iterations of classic, moose, mouse...
>     classic:  4 wallclock secs ( 2.84 usr +  0.00 sys =  2.84 CPU) @
> 176308.54/s (n=500000)
>      moose:  7 wallclock secs ( 7.11 usr +  0.00 sys =  7.11 CPU) @
> 70329.67/s (n=500000)
>      mouse:  1 wallclock secs ( 2.16 usr +  0.00 sys =  2.16 CPU) @
> 231046.93/s (n=500000)
>
> Создание объекта подкласса с еще одним аттрибутом типа Int:
> Subclass new()
> Benchmark: timing 200000 iterations of classic, moose, mouse...
>     classic:  3 wallclock secs ( 2.98 usr +  0.00 sys =  2.98 CPU) @
> 67191.60/s (n=200000)
>      moose:  4 wallclock secs ( 3.55 usr +  0.00 sys =  3.55 CPU) @
> 56263.74/s (n=200000)
>      mouse:  1 wallclock secs ( 1.11 usr +  0.00 sys =  1.11 CPU) @
> 180281.69/s (n=200000)
>
> Доступ по акцессору на чтение (для classic акцессора нету, лезем напрямую в
> хэш):
> Get attribute value
> Benchmark: timing 5000000 iterations of classic, moose, mouse...
>     classic:  1 wallclock secs ( 1.29 usr +  0.00 sys =  1.29 CPU) @
> 3878787.88/s (n=5000000)
>      moose:  5 wallclock secs ( 5.26 usr +  0.00 sys =  5.26 CPU) @
> 950965.82/s (n=5000000)
>      mouse:  1 wallclock secs ( 1.95 usr +  0.00 sys =  1.95 CPU) @
> 2570281.12/s (n=5000000)
>
> А тут я пытался понять, круче ли around, чем SUPER::.
> Call redefined method
> Benchmark: timing 5000000 iterations of classic, moose, mouse...
>     classic:  4 wallclock secs ( 3.69 usr +  0.00 sys =  3.69 CPU) @
> 1355932.20/s (n=5000000)
>      moose:  3 wallclock secs ( 3.52 usr +  0.00 sys =  3.52 CPU) @
> 1422222.22/s (n=5000000)
>      mouse:  3 wallclock secs ( 3.58 usr +  0.00 sys =  3.58 CPU) @
> 1397379.91/s (n=5000000)
>
> Ну, и насчет памяти. Moose кушает ~8Мб, Mouse ~ 1Мб.
>



-- 
Mons Anderson aka Vladimir Perepelitsa
<mons на cpan.org> / #99779956 / quanth на irc.freenode.net
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20101129/4939f9f4/attachment.html>


Подробная информация о списке рассылки Moscow-pm