DioD
offline
Опыт:
45,184Активность: |
Проверка на "текучесть"
Значит так, я начал поднимать свой "тест проэкт" суть которого в проверке на практике гипотез о правилах Jass, увы еще не все элементарные правила общеизвестны.
Всё будет проходить в форме практических заданий для читателей (предварительно я проверяю всё сам)
Задания:
return InitGameCache("ABC") == InitGameCache("ABC")
выясните что делает функция инициализации кеша - создаёт или возвращает кеш? |
30.12.2006, 13:28 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
Очевидно что она возвращает булин... Разве нет? exploder добавил: А все, постановку вопроса понял. Написал бы понятнее, а то выглядит как строчка кода... |
|
30.12.2006, 13:53 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
Код:
Первое испытание предпологает подстановку функций, так что вот целая конструкция |
30.12.2006, 14:02 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
10,760Активность: |
интересно если бы это функция возвращала кэш,то какая создаёт кэш? По-моему эта функция равносильна функциям CreateUnit, CreateTrigger и т.д. |
30.12.2006, 14:17 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Ну, вроде бы суть в том что она всегда возвращает кеш, только вот если его нет, то предварительно его создает. |
30.12.2006, 14:22 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
10,760Активность: |
NETRAT скорее даже так.
|
30.12.2006, 14:27 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
Функция создаёт хэндл для доступа к хеш таблицы с данным именем, достоточно учесть что хэндл всегда разный а данные одни |
30.12.2006, 15:02 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Получается что при постоянном вызове, она все таки аккумулирует утечки - ибо хэндли не удаляются. При первом вызове хеш таблица создается все равно |
30.12.2006, 15:09 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
вот именно, поэтому запись кеша в глобалку строго обязательна, другого способа избежать утечек нет, так как разрушение кеша уничтожает данные но не сам хэндл доступа |
30.12.2006, 16:03 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
remal
нечто
offline
Опыт:
2,087Активность: |
это давным-давно было известно с wc3campaigns. |
03.01.2007, 19:59 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
открой раздел наработок и посмотри как там юзают кеш, видимо кампы далеко |
03.01.2007, 20:25 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
Ну да ладно.
Как было уже давно доказано кеш вара это хеш таблица.
Каждый кусочек информации имеет следующие определяющие.
Хэндл доступа будет каждый раз новый, так что создавайте таблицу только однажды, что бы выяснить существует ли таблица попытайтесь записать что либо а после получить, если вернётся ноль значит таблица не существует.
|
05.01.2007, 00:00 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|