[Moscow.pm] Прокомментируйте , плиз
Vladimir V. Perepelitsa
inthrax на gmail.com
Чт Мар 13 05:50:55 PDT 2008
Benchmark: timing 1000000 iterations of A, I...
A: 0 wallclock secs ( 0.52 usr + 0.00 sys = 0.52 CPU) @ 1923076.92/s
I: 2 wallclock secs ( 1.83 usr + 0.04 sys = 1.87 CPU) @ 534759.36/s
Rate I A
I 534759/s -- -72%
A 1923077/s 260% --
package A;
sub new { bless { test => 'x'x100 } }
package I; {
use Object::InsideOut;
my @test :Field
:Standard(test)
:Accessor(test);
}
...
my $oa = new A;
my $ii = new I ();$ii->set_test ( 'x'x100 );
my $r = timethese(1_000_000 => {
A => sub { my $x = $oa->{test} },
I => sub { my $x = $ii->test },
});
а чтоб не происходило autovivification в blessed hash'е есть restricted hash.
может как-нить представлю сообществу свой base object на рестриктед хэшах.
On Thursday 13 March 2008 14:39, Dmitriy T. wrote:
> Меня смущает то что цифру 40% они наверное откуда-то брали всё-таки. Вот
> думаю откуда...
>
> Ivan B. Serezhkin wrote:
> > Vladimir V. Perepelitsa wrote:
> >> On Thursday 13 March 2008 13:59, Dmitriy T. wrote:
> >>> * Speed
> >>>
> >>> When using arrays to store object data, Object::InsideOut objects
> >>> are as much as 40% faster than /blessed hash/ objects for
> >>> fetching and setting data, and even with hashes they are still several
> >>> percent faster than /blessed hash/ objects.
> >>>
> >>> Врут? Или лукавят?
> >>
> >> наглейшее вранье.
> >> никаким способом нельзя сделать, чтоб вызов метода был быстрее выборки
> >> из хэша щас поставлю этот Object, добавлю в тест и запощу результат
> >
> > Имено так, ибо вызов метода - это выборка из хэша методов =)
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm
--
Vladimir Perepelitsa aka Mons Anderson
<inthrax на gmail.com> / #99779956
Подробная информация о списке рассылки Moscow-pm