[Moscow.pm] Производительность объектов.

Сергей Мартынов sergey на martynov.info
Чт Мар 27 09:10:34 PDT 2008


> Немного другое направление.

Ой, я оказывается не совсем то имел в виду :) У меня есть другое
(недоделанное) исследование, уже с использованием всяких модулей с
CPAN. До описания дело не дошло, но вот архив с исходниками:
http://martynov.info/files/data_structures_bench.zip

Там создан набор классов, использующий разные подходы для аксессоров,
и над объектами выполняются простые действия. Сравнивается такие
варианты:

Прямой доступ по ключам хэша:

DSBench::Hash::Direct::Simple - хэш
DSBench::Hash::Direct::Blessed - blessed хэш

Аксессор (один метод для установки и получения значения поля)

DSBench::Hash::Accessor::Man - вручную написанные методы
DSBench::Hash::Accessor::Gen - сгенерированные методы
DSBench::Hash::Accessor::ClassAccessor - использование Class::Accessor

Геттер/сеттер (отдельные методы для получения и установки значений)

DSBench::Hash::GetterSetter::Man - вручную написанные методы
DSBench::Hash::GetterSetter::Gen - сгенерированные методы
DSBench::Hash::GetterSetter::ClassAccessor - использование Class::Accessor

(в общем, лучше посмотреть исходники - там понятно)


У меня на ноуте получаются такие результаты:

            Rate H-GS-CA H-Acc-CA H-Acc-Man H-Acc-Gen H-GS-Gen
H-GS-Man H-Dir-Bls H-Dir-Smp
H-GS-CA   4.49/s      --      -3%      -46%      -46%     -53%
-54%      -84%      -84%
H-Acc-CA  4.64/s      3%       --      -44%      -44%     -52%
-52%      -83%      -84%
H-Acc-Man 8.29/s     84%      79%        --       -1%     -14%
-15%      -70%      -71%
H-Acc-Gen 8.35/s     86%      80%        1%        --     -14%
-14%      -70%      -71%
H-GS-Gen  9.66/s    115%     108%       17%       16%       --
-1%      -65%      -66%
H-GS-Man  9.76/s    117%     110%       18%       17%       1%
--      -64%      -66%
H-Dir-Bls 27.5/s    511%     491%      231%      229%     184%
181%        --       -4%
H-Dir-Smp 28.6/s    536%     515%      245%      242%     196%
193%        4%        --


-- 
С уважением, Сергей Мартынов.


Подробная информация о списке рассылки Moscow-pm