[Moscow.pm] Оптимизация
Ivan B. Serezhkin
ivan на serezhkin.com
Чт Дек 6 02:13:27 PST 2007
Монашёв Михаил wrote:
> Здравствуйте, Денис.
>
> Очевидно, что делать my в цикле медленнее, чем сделать my единожды.
>
Да в любой хорошей книжке про программирование говорится, что в цикле
надо делать как можно меньше.
даже обращений к массиву, которые сами по себе выполняются за
константное маленькое время.
Также не надо забывать что у процессора есть кэш и он маленький, а в
память ломится - это тактов 50, не меньше.
Так что в большом цикле, желательно иметь всё под рукой, чтоб в L2 кэш
влезло, хотя с перлом ... сложно это с перлом.
>
>> Я провёл тестирование и наткнулся на интересный момент.
>> Простой перебор хеша с помощью each можно ускорить на 12-15%
>>
>
>
>> Запись, которую обычно используют:
>> while(my($key, $value) = each %hash)
>> {
>> }
>>
>
>
>> Полностью аналогичная запись:
>> {
>> ═══ my($key, $value);
>> ═══ while(($key, $value) = each %hash)
>> ═══ {
>> ═══ }
>> }
>>
>
>
>> во втором случае мы получаем прирост производительности оставляя
>> при этом туже область видимости, что и в первом.
>>
>
>
>
>
--
Ivan B. Serezhkin
Подробная информация о списке рассылки Moscow-pm