![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,467Активность: |
хеш таблица и хендлы
Допустим я использую хеш таблицу в 1001 месте в скрипте карты, многократно, и записал хендл не в пустую ячейку а в ячейку занятую другим хендлом, вызовет ли это утечку? |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DaeDR
![]() ![]() offline
Опыт:
8,074Активность: |
quq_CCCP, Ячейка будет просто перезаписана. Если в ней был real, integer и иже с ним., не требующий удаления объекта, то нет. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,467Активность: |
DaeDR, да вот есть подозрение что нет, в неё то запишет а хендл останется висеть, в памяти, периодический рост хендлов в карте настораживает , и создаются они строго определённым интервалом... Вот если я записал юнита в хеш, затем убил его, терригенно, а затем в эту ячейку другого юнита записал, не юзая RemoveUnit(WhithUnit), будет ли утечка? Отредактировано quq_CCCP, 05.04.2012 в 08:14. |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Uncolo
![]() ![]() offline
Опыт:
580Активность: |
quq_CCCP, При записи в данную ячейку, она просто заменится другим значением, утечки не должно вызывать. А юнита загруженного из хеша можно просто убить или ремувить
|
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
16GB
GhostOne User
![]() ![]() offline
Опыт:
60,317Активность: |
перезаписывается не будет утечки |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,467Активность: |
16GB, ладно спасибо. буду искать счего у меня время от времени + 20 хендлов... Тему можно закрывать. |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
нет, если бы ты читал статью xgm.ru/p/wc3/w3_data_types, то знал бы, что хендл - это указатель и работает так же как число, только не удаляется автоматически в конце функций |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,467Активность: |
ScorpioT1000, то что хендл или переменная ссылочного типа,в которой находится адрес ячейки (ячеек) памяти, я знаю... Но только вот в хеше мы сохраняем ссылку а не все ячейки памяти, дак вот меня интересовало про память а не хештаблицу... |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Ты сохраняешь эту ссылку в хештейбле, но в функции ты обязан присвоить ей null, иначе будет утечка в функции. в хештейбле не будет утечка, т.к. там для каждой новой переменной не выделяется новое место в стеке, а в функции выделяется. |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J64_
![]() offline
Опыт:
4,724Активность: |
Вроде слышал что чрезмерное употребление хеш-таблиц могут вызвать ошибки с рециркуляцией хэндлов. Тоадсор вроде поднимал тему с этим.
автор путает кеш и хеш, это можно не читать © Sc Отредактировано ScorpioT1000, 05.04.2012 в 15:36. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|