Слышал, что не стоит создавать много хештаблиц, так как это занимает много памяти.
function TimerCallback takes nothing returns nothing
	call InitHashtable( )
endfunction

function Start takes nothing returns nothing
	call TimerStart( CreateTimer( ), 0.010, true, function TimerCallback )
endfunction
Или вес хештаблицы растёт по мере добавления в неё данных? Но тогда в чём проблема большого количества хештаблиц. Ведь что одна хештаблица весом 10, или пять хештаблиц весом по 2. В итога оба варианта весят по 10.

Каждый новый хеш-тейбл инициализируется заново и остаётся висеть в оперативке до удаления из скрипта карты или до завершения игры (по крайней мере, мне так помнится). Операции выделения памяти довольно тяжёлые сами по себе, но куда значимее тот факт, что пересоздание и плождение таблиц - абсолютно бессмысленные операции по своей сути, они не несут вообще никакого положительного выхлопа.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
Каждый новый хеш-тейбл инициализируется заново и остаётся висеть в оперативке до удаления из скрипта карты или до завершения игры (по крайней мере, мне так помнится). Операции выделения памяти довольно тяжёлые сами по себе, но куда значимее тот факт, что пересоздание и плождение таблиц - абсолютно бессмысленные операции по своей сути, они не несут вообще никакого положительного выхлопа.
Принятый ответ
32
Зачем вам 10 хештаблиц? Все прекрасно влазит в 1.
16
Забавный факт - хештаблица генерируется в момент выделения карты в лобби, а не при загрузке или исполнении скрипта. Точнее, сперва при проверке синтаксиса, а затем - когда жмется "старт". А обычный скрипт выполняется примерно после середины полосы загрузки.
Но вообще да, в движке жестко указано 255 таблиц максимум, дальше InitHashtable просто не сработают.
30
DracoL1ch, то есть игра до исполнения кода считает максимальное количество одновременно существующих таблиц? Каким образом?
Или я неверно понял сообщение?
16
по крайней мере из globals инициализация InitHashtable идет до начала загрузки. Ну а лимит реализован просто - однажды у тебя будет 255 вызовов InitHashtable и после этого новые создаваться не будут.
21
У тебя по Таблице на объект чтоли? Поделись дурью.
4
quq_CCCP:
Зачем вам 10 хештаблиц? Все прекрасно влазит в 1.
Ну а если 2 скила будут юзать одну таблицу? Неудобно ведь :(. FlushChildHashtable не заюзать
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.