[Moscow.pm] Book: Modern Perl
Aleksey Mashanov
aleksey.mashanov на gmail.com
Сб Ноя 27 17:03:30 PST 2010
На той неделе потратил не один час на то, чтобы доказать самому себе, что
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Мб.
16 ноября 2010 г. 15:46 пользователь Mons Anderson <mons на cpan.org> написал:
> On Monday 15 November 2010 22:15:30 Михаил Шогин wrote:
> > Перешли на Class::Accessor::Fast::XS "moose-like"; %)
>
> А можно посмотреть на это? Очень интересно.
> Сам я использую accessors::fast для lightweight приложений
>
> --
> Mons Anderson aka Vladimir Perepelitsa
> <mons на cpan.org> / #99779956 / quanth на irc.freenode.net
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20101128/3b6a9b7c/attachment.html>
Подробная информация о списке рассылки Moscow-pm