Добрый вечер. Тут говорится, что при обращении к массиву выделяется память на 1024 элемента.
Вопрос. Выделение памяти в хеш-таблицах работает так же? То есть при обращении к первым выделится 1024, а при вызове FlushChildHashtable() - освободится? 1.26а

Принятый ответ

да, массив постоянно будет делать reAllocMem , если текущий размер окажется мельче, чем номер ячейки. Поэтому, если массив будет часто писаться с инкрементом, то выгоднее сперва прописать в последнее допустимое значение (8191 для 26 патча) типа MyArray[8191]=0
чисто чтобы его по памяти не возили туда-сюда каждые X значений (не смотрел, сколько изначально выделяется)
я вот у себя пофиксил такую же байду с таблицей строк. игра выделяет по 16 ячеек под строки, а у меня в доте они генерируются десятками в секунду. Каждую секунду игра делала ре-аллок памяти, а к середине игры там уже несколько мб таблица туда-сюда ездила. Сделал аллок в разы больше - и таблица всего 2 раза переедет за 40 минут игры максимум. Экономия тактов налицо.
Хеш-таблицы вообще не являются массивами, гугл в помощь, поэтому там об этом думать не стоит. Стоит думать лучше о том, чтобы первичных (родительских) ключей было меньше, чем вторичных, чисто исходя из того, что в этом случае перебор по таблице окажется быстрее
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
1
28
4 года назад
1
Почему информация о массивах является верной? Не стал бы верить этому, хотя бы потому что можно сразу в последнюю ячейку писать.

Поговаривают, что хеш в варе - обычная сишная или си-плюс-плюсная хеш-таюлица.
0
19
4 года назад
0
PT153, так и есть.
0
28
4 года назад
0
Ev3nt, а по поводу массивов - они действительно динамические?
0
19
4 года назад
0
PT153, а это я уже не помню, но отследить удавалось :D
0
17
4 года назад
0
PT153:
Почему информация о массивах является верной?
Не знаю является ли она верной, но её написал Hanabishi, а не ноунейм, она выбрана лучшим ответом на этом сайте, никто из пользователей в комментариях (DracoL1ch, Doc, Clamp, nvc123, quq_CCCP) никак не опровергнул это
0
26
4 года назад
0
вполне возможно так и есть, но какая практическая польза от этих знаний?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.