URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 2370
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Как сразу выделить память под хэш в Perl до его заполнения."

Отправлено auto_tips , 14-Авг-03 16:52 
Определяем, что хэш будет содержать около 100 записей:
  keys( %hash ) = 100;


URL:
Обсуждается: http://www.opennet.me/tips/info/529.shtml


Содержание

Сообщения в этом обсуждении
"а слабо доказать "
Отправлено миротворец , 14-Авг-03 16:52 
что печатает
print scalar keys %hash
?

у меня получается что хэш будет содержать около 0 записей

следовательно это парево, а не совет


"а слабо доказать "
Отправлено sk , 14-Авг-03 22:52 
>что печатает
>print scalar keys %hash
>у меня получается что хэш будет содержать около 0 записей

Советуют ведь не как заполнить хэш, а как сразу зарезервировать память в расчете на его примерный размер в будущем.


"только смысла нет"
Отправлено Alex , 10-Сен-03 07:02 
Вообще это имеет смысл когда keys(%x) присваивают достаточно большое значение и что его не понадобится уменьшать. Perl экономит примерно половину действий на создание следующего ключа/элемента при этом.
На мой личный взгляд присваивать число меньше 1000 смысла нет. А вот 1000 или тем более 2000 например - это может пригодиться.
Уменьшать размер хеша кстати таким образом нельзя.