![]()
DioD
offline
Опыт:
45,184Активность: |
Проверка на "текучесть"
Значит так, я начал поднимать свой "тест проэкт" суть которого в проверке на практике гипотез о правилах Jass, увы еще не все элементарные правила общеизвестны.
Всё будет проходить в форме практических заданий для читателей (предварительно я проверяю всё сам)
Задания:
return InitGameCache("ABC") == InitGameCache("ABC")
выясните что делает функция инициализации кеша - создаёт или возвращает кеш? |
|
|
![]()
exploder
iOS zealot
offline
Опыт:
17,594Активность: |
Цитата:
Очевидно что она возвращает булин... Разве нет? exploder добавил: А все, постановку вопроса понял. Написал бы понятнее, а то выглядит как строчка кода... |
|
|
|
![]()
DioD
offline
Опыт:
45,184Активность: |
Код:
Первое испытание предпологает подстановку функций, так что вот целая конструкция |
|
|
![]()
p01nTT
offline
Опыт:
10,760Активность: |
интересно если бы это функция возвращала кэш,то какая создаёт кэш? По-моему эта функция равносильна функциям CreateUnit, CreateTrigger и т.д. |
|
|
![]()
NETRAT
offline
Опыт:
82,062Активность: |
Ну, вроде бы суть в том что она всегда возвращает кеш, только вот если его нет, то предварительно его создает. |
|
|
![]()
p01nTT
offline
Опыт:
10,760Активность: |
NETRAT скорее даже так.
|
|
|
![]()
DioD
offline
Опыт:
45,184Активность: |
Функция создаёт хэндл для доступа к хеш таблицы с данным именем, достоточно учесть что хэндл всегда разный а данные одни |
|
|
![]()
NETRAT
offline
Опыт:
82,062Активность: |
Получается что при постоянном вызове, она все таки аккумулирует утечки - ибо хэндли не удаляются. При первом вызове хеш таблица создается все равно |
|
|
![]()
DioD
offline
Опыт:
45,184Активность: |
вот именно, поэтому запись кеша в глобалку строго обязательна, другого способа избежать утечек нет, так как разрушение кеша уничтожает данные но не сам хэндл доступа |
|
|
![]()
remal
нечто
offline
Опыт:
2,087Активность: |
это давным-давно было известно с wc3campaigns. |
|
|
![]()
DioD
offline
Опыт:
45,184Активность: |
открой раздел наработок и посмотри как там юзают кеш, видимо кампы далеко |
|
|
![]()
DioD
offline
Опыт:
45,184Активность: |
Ну да ладно.
Как было уже давно доказано кеш вара это хеш таблица.
Каждый кусочек информации имеет следующие определяющие.
Хэндл доступа будет каждый раз новый, так что создавайте таблицу только однажды, что бы выяснить существует ли таблица попытайтесь записать что либо а после получить, если вернётся ноль значит таблица не существует.
|
|
|