[Moscow.pm] Прокомментируйте , плиз
Dmitriy T.
403rus на gmail.com
Чт Мар 13 06:38:00 PDT 2008
Ну в принципе да медленнее на этом тесте. Правда я добавил в тест кроме
get ещё и set - там он отстаёт всего в два раза где-то (а если увеличить
размер до 1000 'x' то и вообще в 1.5).
Нашёл я ещё упоминание автора о том что он получил прирост при переходе
с blessed hash:
I tested the performance of array-based Object::InsideOut objects on several
platforms, and was impressed with the results: I got anywhere from 20%
(Solaris) to 40% (ActivePerl) performance improvement for basic fetch and store
operations over blessed-hash objects! Additionally, array-based objects consume
less memory because Perl doesn't have to store hash keys for the object field data.
отсюда: http://www.cpanforum.com/posts/1316
Vladimir V. Perepelitsa wrote:
> 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
>>
>
>
Подробная информация о списке рассылки Moscow-pm