Всех приветствую. Возник такой вопрос. При создании одной занятной системы, связанной с хэш-таблицей, при постоянном использовании функции с конструкцией возникает выделение памяти, доходящее до предела и выбивает вар. Привожу часть кода, который вызывает сомнения:
}elseif GetHandleId(LoadUnitHandle(table,parentKey,childKey) > 0){
return UNIT_STR
}elseif ..
Пояснения, зачем и как это работает: позволяет определить тип переменной, сохраненной в конкретной ячейке хэш-таблицы (помогает при debag'е), но память все же выделяется, что быть не должно. Как с этим бороться?
P.S.: я знаю, хэш-таблицы - зло, но все же мне нравится их использовать.
P.S.: я знаю, хэш-таблицы - зло, но все же мне нравится их использовать.
Принятый ответ
MultiboardGetItem создает игровой объект-ячейку, MultiboardReleaseItem разбивает её обратно. Если таблица навсегда. то выгоднее хранить объекты в массиве, чтобы не терять время на постоянные Get-Release + это позволяет в дальнейшем асинхронно менять содержимое ячеек, что невозможно, если использовать функции.
Ну а кто жрет память, моешь с помощью этой тулзы глянуть (может не запускаться, у меня работает) - кинуть в корень варика и запустить при работающей игре
Ну а кто жрет память, моешь с помощью этой тулзы глянуть (может не запускаться, у меня работает) - кинуть в корень варика и запустить при работающей игре
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
они хэшируются как и любые строки
мб ты затираешь значения в таблице?
например сохранил юнита в ячейку 1-1 а потом в эту же ячейку точку
в результате юнит в игре остался а в таблице нет
у тебя везде MultiboardGetItem, а кто будет MultiboardReleaseItem делать?
DracoL1ch, с применением функции вопрос с потреблением памяти решился, но все равно по диспетчеру задач потребление медленно-медленно растет.
Отредактирован DracoL1ch
Ну а кто жрет память, моешь с помощью этой тулзы глянуть (может не запускаться, у меня работает) - кинуть в корень варика и запустить при работающей игре
либо используют не правильно
ну и в большинстве случаев структуры удобнее чем таблицы
т.к. намного проще сделать missile.getDamage() чем таскать из таблицы данные
особенно если данные потом надо обработать и заново записать в таблицу
особенно весело работать с таблицей когда в качестве индексов выступают не константы/дефайны а магические числа
и потом месяца через 4 вспоминай что там хранилось в ячейке 16-5
и нет никаких проблем с индексами, если следовать собственным правилам. В №2 всегда кастер, в №5 всегда уровень, там же булька - есть улучшение или нет, в №17 дамми и т.д.