<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:11pt;font-family:Terminus">
<p>А можно-ли посмотреть на сами тесты?</p>
<p>очень-уж странные результаты...</p>
<p></p>
<p>в частности по памяти:</p>
<p></p>
<p>[mons@veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Moose; }; say &quot;+&quot; . (vsize($$) - $a)/1024 . &quot; k&quot;'</p>
<p>+18020 k</p>
<p>[mons@veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Mouse; }; say &quot;+&quot; . (vsize($$) - $a)/1024 . &quot; k&quot;'</p>
<p>+5380 k</p>
<p>[mons@veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require Moo; }; say &quot;+&quot; . (vsize($$) - $a)/1024 . &quot; k&quot;'</p>
<p>+1024 k</p>
<p>[mons@veda ~]$ perl -MProc::Vsize -E '$a = vsize($$); eval { require accessors::fast; }; say &quot;+&quot; . (vsize($$) - $a)/1024 . &quot; k&quot;'</p>
<p>+5256 k</p>
<p></p>
<p></p>
<p>PS: (Proc::Vsize есть на гитхабе)</p>
<p></p>
<p>On Sunday 28 November 2010 04:03:30 Aleksey Mashanov wrote:</p>
<p>&gt; На той неделе потратил не один час на то, чтобы доказать самому себе, что</p>
<p>&gt; Moose можно применять для высоконагруженных приложений, в которых жалко как</p>
<p>&gt; процессор, так и память. Процессор, потому что весь IO асинхронный и в io</p>
<p>&gt; не тупим, память, потому что много разных процессов на одной машине.</p>
<p>&gt; Результат: Mouse (это не опечатка). Бенчмарки по горячим следам публикую.</p>
<p>&gt; На wallclock просьба не смотреть. Бенчмарк с виртуальной машины, так что</p>
<p>&gt; wallclock побит, но использование процессора реальное. Проверял и на</p>
<p>&gt; физическом сервере, результат такой же (но wallclock адекватнее).</p>
<p>&gt;</p>
<p>&gt; Итак, создание объекта с одним аттрибутом типа Int (для classic проверяем</p>
<p>&gt; регекспом):</p>
<p>&gt; Base class new()</p>
<p>&gt; Benchmark: timing 500000 iterations of classic, moose, mouse...</p>
<p>&gt;     classic:  4 wallclock secs ( 2.84 usr +  0.00 sys =  2.84 CPU) @</p>
<p>&gt; 176308.54/s (n=500000)</p>
<p>&gt;      moose:  7 wallclock secs ( 7.11 usr +  0.00 sys =  7.11 CPU) @</p>
<p>&gt; 70329.67/s (n=500000)</p>
<p>&gt;      mouse:  1 wallclock secs ( 2.16 usr +  0.00 sys =  2.16 CPU) @</p>
<p>&gt; 231046.93/s (n=500000)</p>
<p>&gt;</p>
<p>&gt; Создание объекта подкласса с еще одним аттрибутом типа Int:</p>
<p>&gt; Subclass new()</p>
<p>&gt; Benchmark: timing 200000 iterations of classic, moose, mouse...</p>
<p>&gt;     classic:  3 wallclock secs ( 2.98 usr +  0.00 sys =  2.98 CPU) @</p>
<p>&gt; 67191.60/s (n=200000)</p>
<p>&gt;      moose:  4 wallclock secs ( 3.55 usr +  0.00 sys =  3.55 CPU) @</p>
<p>&gt; 56263.74/s (n=200000)</p>
<p>&gt;      mouse:  1 wallclock secs ( 1.11 usr +  0.00 sys =  1.11 CPU) @</p>
<p>&gt; 180281.69/s (n=200000)</p>
<p>&gt;</p>
<p>&gt; Доступ по акцессору на чтение (для classic акцессора нету, лезем напрямую в</p>
<p>&gt; хэш):</p>
<p>&gt; Get attribute value</p>
<p>&gt; Benchmark: timing 5000000 iterations of classic, moose, mouse...</p>
<p>&gt;     classic:  1 wallclock secs ( 1.29 usr +  0.00 sys =  1.29 CPU) @</p>
<p>&gt; 3878787.88/s (n=5000000)</p>
<p>&gt;      moose:  5 wallclock secs ( 5.26 usr +  0.00 sys =  5.26 CPU) @</p>
<p>&gt; 950965.82/s (n=5000000)</p>
<p>&gt;      mouse:  1 wallclock secs ( 1.95 usr +  0.00 sys =  1.95 CPU) @</p>
<p>&gt; 2570281.12/s (n=5000000)</p>
<p>&gt;</p>
<p>&gt; А тут я пытался понять, круче ли around, чем SUPER::.</p>
<p>&gt; Call redefined method</p>
<p>&gt; Benchmark: timing 5000000 iterations of classic, moose, mouse...</p>
<p>&gt;     classic:  4 wallclock secs ( 3.69 usr +  0.00 sys =  3.69 CPU) @</p>
<p>&gt; 1355932.20/s (n=5000000)</p>
<p>&gt;      moose:  3 wallclock secs ( 3.52 usr +  0.00 sys =  3.52 CPU) @</p>
<p>&gt; 1422222.22/s (n=5000000)</p>
<p>&gt;      mouse:  3 wallclock secs ( 3.58 usr +  0.00 sys =  3.58 CPU) @</p>
<p>&gt; 1397379.91/s (n=5000000)</p>
<p>&gt;</p>
<p>&gt; Ну, и насчет памяти. Moose кушает ~8Мб, Mouse ~ 1Мб.</p>
<p>&gt;</p>
<p></p>
<p></p>
<p></p>
<p>-- </p>
<p>Mons Anderson aka Vladimir Perepelitsa</p>
<p>&lt;mons@cpan.org&gt; / #99779956 / quanth@irc.freenode.net</p>
</body></html>