[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 было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20101129/4939f9f4/attachment.html>
Подробная информация о списке рассылки Moscow-pm