Вопрос таков: я использовал, например, 100 переменных, забил в них всех значения, затем сделал с их помощью действия, не имеет значения какие. И вот теперь по сути эти переменные больше мне не нужны. Если я очищу их значение - это высвободит часть памяти, или это не имеет смысла?

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

Глобальные переменные как висят в памяти, так они там и есть. Но если ты потом не переписываешь глобальные и вообще перестаешь эти переменные пользовать, то лучше обнулить
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
12
8 лет назад
0
По сути 100-200 локальных переменных даже с необнуленными значениями не окажут абсолютно никакого влияния на игровой процесс, поскольку затраты памяти на них ничтожны. Исключения составляют переменные, которые содержат большое количество символов (буквенных/цифирных).
0
15
8 лет назад
0
DracoL1ch, Astra, что вы несете? откуда вы это вообще взяли?
0
12
8 лет назад
0
Astra:
По сути 100-200 [глобальных] переменных даже с необнуленными значениями не окажут абсолютно никакого влияния на игровой процесс, поскольку затраты памяти на них ничтожны. Исключения составляют переменные, которые содержат большое количество символов (буквенных/цифирных) - [в своем значении].
Механически ошибся в виде переменной.
0
15
8 лет назад
0
Astra, ну выделяешь ты память под int? Хоть ты туда 0 запишешь, хоть ты туда 111111 запишешь. Какая разница-то?
0
12
8 лет назад
0
EnergyFrost:
Astra, ну выделяешь ты память под int? Хоть ты туда 0 запишешь, хоть ты туда 111111 запишешь. Какая разница-то?
Я могу в "String" запихнуть кучу кирилического текста
0
20
8 лет назад
0
EnergyFrost, переменные-массивы обнулять необходимо вот такой командой:
call RemoveLocation(udg_HranitelPoint[0]) ?
Меня волнует обозначение индекса.
0
15
8 лет назад
0
Yury13, ты не обнуляешь, а удаляешь объект, на который ссылается udg_HranitelPoint[0]. А обнуление- приравнивание к нулевому значению, то есть переменная перестает содержать ссылку на какой-либо объект, либо приводится к исходному значению. В общем, у вас каша в голове. Прочитайте статьи.
2
16
8 лет назад
2
EnergyFrost:
DracoL1ch, Astra, что вы несете? откуда вы это вообще взяли?
я - из c++ и кода варкрафта. а ты дальше рассуждай из пальца
EnergyFrost:
Yury13, ты не обнуляешь, а удаляешь объект, на который ссылается udg_HranitelPoint[0]. А обнуление- приравнивание к нулевому значению, то есть переменная перестает содержать ссылку на какой-либо объект, либо приводится к исходному значению. В общем, у вас каша в голове. Прочитайте статьи.
при этом память, выделенная для переменной, остается занятой игрой и не высвобождается до выхода из карты. поэтому и нужно нулить, чтобы вакантные места занимали новые локалки, а не отъедали снова и снова куски памяти
0
12
8 лет назад
0
Глобалки обнулять - можно, но практического смысла в этом нет. Про удаление точек конечно речь отдельная. Что касательно локальных довольно неплохо описано здесь - xgm.guru/p/wc3/w3datatypes
1
28
8 лет назад
1
Astra, DracoL1ch, EnergyFrost, Yury13, память под переменные вы не освободите
да это и не нужно
ибо переменная занимает лишь 4 байта
а вот объекты нужно удалять после того как они стали ненужны
а обнуление переменных используется из за баганого интерпретатора варика
который не освобождает хэндл из таблицы пока на него указывает хоть 1 переменная
0
15
8 лет назад
0
nvc123, в частности так и сказал -_-
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.