Сейчас 21:16:09 Четверг, 28 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Довольно простой вопрос по утечкам
sumertДата: Воскресенье, 01 Марта 2015, 06:06:45 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
У меня есть глобальная переменная юнит массив. Периодически я заполняю этот массив, юниты remove и периодически массив перезаписывается заного. В этом случае возникают утечки?
 

SirNikolasДата: Воскресенье, 01 Марта 2015, 09:39:13 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Нет.

 

DuosoraДата: Вторник, 03 Марта 2015, 00:02:23 | Сообщение # 3
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
Утечек не возникает в том случае, если массив в самом конце его использования корректно обнуляется. При этом не обязательно обнулять все элементы массива - достаточно обнулить только те, которые были использованы.

Не зли других и сам не злись.
Мы - гости в этом мире.
И если что не так - смирись,
Будь поумнее - улыбнись,
Ведь в мире всё закономерно.
Зло, излучённое тобой,
К тебе вернётся непременно.
 

ExtrematorДата: Вторник, 03 Марта 2015, 12:54:47 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
На сколько я успел понять, если в конце не сделать set u = null , то переменная продолжит хранить хендл объекта в памяти (т.к. он ещё висит в переменной)
И даже если объект удалить из игры - переменная никогда не вернёт true на if u == null

В итоге - юнита нет в игре, но переменная всё ещё не может ответить что она чистая и юнита в неё не записано
 

DuosoraДата: Вторник, 03 Марта 2015, 14:31:25 | Сообщение # 5
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
Extremator,
Цитата Extremator ()
На сколько я успел понять, если в конце не сделать set u = null , то переменная продолжит хранить хендл объекта в памяти (т.к. он ещё висит в переменной)
И даже если объект удалить из игры - переменная никогда не вернёт true на if u == null

Хм, это стоит проверить.
Но, по идее, в переменной хранится ссылка на объект, а не сам объект. Ссылка тоже требует аллокации в памяти и null эту аллокацию унифицирует.


Не зли других и сам не злись.
Мы - гости в этом мире.
И если что не так - смирись,
Будь поумнее - улыбнись,
Ведь в мире всё закономерно.
Зло, излучённое тобой,
К тебе вернётся непременно.
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz