adic3x
offline
Опыт:
107,539Активность: |
Патчи 1.24+ для картоделов.
Patch 1.24: подробности о реализацииВ патч включены 97 новых функций и один тип (производный от handle) для облегчения жизни картоделам. Эти расширения также касаются и нового хранилища данных - хэш-таблицы (hashtable), которая по структуре похожа на gamecache (в дальнейшем - GC).
В GC разрешено хранить только юнитов и базисные типы (integer, real, boolean, string), в то время как хэш-таблицы располагают средствами для хранения большинства типов, производных от handle. Еще одно отличие заключается в том, что для ключей в хэш-таблице используются целые числа (integer) (в GC - строки (string)). Вдобавок, хранение и получение данных из хэш-таблиц производится намного быстрее и безопаснее, чем аналогичные операции с GC.
Хэш-функцииНовые функции GetHandleId и StringHash конвертируют handle или строку в число. Возвращаемые значения могут неявно использоваться в качестве ключей для хэш-таблиц.
StringHash (string): integer - похоже на функцию S2I с одним отличием - эта может принимать любую строку в качестве параметра. Возвращает хеш от строки.
GetHandleId (handle): integer - работает точно так же, как и функция H2I. Для уменьшения конфликтов с совпадением имен, функцию назвали GetHandleId.
Хэш-таблицыХэш-таблицы могут быть объявлены как переменные типа hashtable. Как упоминалось выше, принцип работы хэш-таблицы очень схож с GC. Чтобы создать новую хэш-таблицу используйте InitHashtable:
Все типы хендлов разделяют одно и то же именное пространство ключей. То есть, если вызвать SaveUnitHandle после SavePlayerHandle с одинаковыми ключами, значение player перезапишется на значение unit. Несмотря на то, что именное пространство одно, функции SaveXXXHandle и LoadXXXHandle будут возвращать результат корректно:
Все хендлы, сохраненные или удаленные из хэш-таблицы, автоматически ссылочно нумеруются. Это позволяет сохранять объекты в хэш-таблицу без риска досрочного освобождения памяти. Нумерация ссылок обновляется при добавлении, удалении и перезаписи объекта в хэш-таблицу.
Смотрите также:Отредактировано Nekit1234007, 02.03.2011 в 23:21. |
10.06.2009, 12:30 | #1
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BK.Jugg
террорист из КиП
offline
Опыт:
26,966Активность: |
» раскрыть Код:
o_O новые жасс функции чтоле? Отредактировано ADOLF, 10.06.2009 в 12:45. |
10.06.2009, 12:38 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Reaver
I am Олдфаг!
offline
Опыт:
3,426Активность: |
Одни хэндлы)) Хотя ещё есть интересности) |
10.06.2009, 12:40 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Lolo_87
offline
Опыт:
1,810Активность: |
Я думаю вместо SCV они хотят сделать вот это) теперь КЭШь отдыхает, хм... страно куда он будет их сам сохранять... Отредактировано Lolo_87, 10.06.2009 в 12:47. |
10.06.2009, 12:42 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Близзы рулят ! Они убили РБ ! Я был прав :) ! Зато, они добавили аналог РБ как нативки ! Что может быть лучше ?
Если я чего-то не понял - пожалуйста не пинайте, т.к. я инглиш не сильно бум-бум |
10.06.2009, 12:43 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ranger21
I love beatiul days XD
offline
Опыт:
13,274Активность: |
Ммм... теперь не придётся пользоваться функцией H2I?
=))) дык это же ништяк...
Надеюсь в СК2 редакторе они учтут все эти фичи |
10.06.2009, 13:09 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Для тех, у кого не лады с английским, перевел (и немного дополнил) текст:
Patch 1.24: подробности о реализацииВ патч включены 97 новых функций и один тип (производный от handle) для облегчения жизни картоделам. Эти расширения также касаются и нового хранилища данных - хэш-таблицы (hashtable), которая по структуре похожа на gamecache (в дальнейшем - GC).
В GC разрешено хранить только юнитов и базисные типы (integer, real, boolean, string), в то время как хэш-таблицы располагают средствами для хранения большинства типов, производных от handle. Еще одно отличие заключается в том, что для ключей в хэш-таблице используются целые числа (integer) (в GC - строки (string)). Вдобавок, хранение и получение данных из хэш-таблиц производится намного быстрее и безопаснее, чем аналогичные операции с GC.
Хэш-функцииНовые функции GetHandleId и StringHash конвертируют handle или строку в число. Возвращаемые значения могут неявно использоваться в качестве ключей для хэш-таблиц.
StringHash (string): integer - похоже на функцию S2I с одним отличием - эта может принимать любую строку в качестве параметра. Возвращает хеш от строки.
GetHandleId (handle): integer - работает точно так же, как и функция H2I. Для уменьшения конфликтов с совпадением имен, функцию назвали GetHandleId.
Хэш-таблицыХэш-таблицы могут быть объявлены как переменные типа hashtable. Как упоминалось выше, принцип работы хэш-таблицы очень схож с GC. Чтобы создать новую хэш-таблицу используйте InitHashtable:
Все типы хендлов разделяют одно и то же именное пространство ключей. То есть, если вызвать SaveUnitHandle после SavePlayerHandle с одинаковыми ключами, значение player перезапишется на значение unit. Несмотря на то, что именное пространство одно, функции SaveXXXHandle и LoadXXXHandle будут возвращать результат корректно:
Все хендлы, сохраненные или удаленные из хэш-таблицы, автоматически ссылочно нумеруются. Это позволяет сохранять объекты в хэш-таблицу без риска досрочного освобождения памяти. Нумерация ссылок обновляется при добавлении, удалении и перезаписи объекта в хэш-таблицу.
<Далее идет список функций>
Отредактировано ShadoW DaemoN, 05.08.2009 в 16:47. |
10.06.2009, 13:13 | #7
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BK.Jugg
террорист из КиП
offline
Опыт:
26,966Активность: |
ShadoW DaemoN, ятп это для сис-мы Save/Load?
|
10.06.2009, 13:17 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
свдн молодец=)
хм, ну я пока немогу ничего сказать... это надо пощупать) ADOLF добавил: BK.Jugg, нет |
10.06.2009, 13:20 | #9
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,681Активность: |
Хорошо:
Цитата:
Плохо: много переделывать придется т_т у меня около 70 спеллов в карте на кеше... |
|
10.06.2009, 13:20 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
BK.Jugg, не только. Близзы утверждают, их новоиспеченная хэш-таблица работает намного быстрее, чем GC, да и хранить можно практически любой тип. Если их заверения верны, то это значит, что системы аттача числа на хендл внезапно становятся бесполезными, так как в большинстве случаев новые нативные функции будут работать быстрее.
|
10.06.2009, 13:25 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Lolo_87
offline
Опыт:
1,810Активность: |
Это замена РБ или просто нововведение? |
10.06.2009, 13:26 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
охренеть, ведь этот патч перевернет весь мир
да не ожидал такой щедрости от близов. agentex добавил: а кода патчик станет доступен для качания? на офф фтп его еще нет agentex добавил: да, теперь ждем обновленный ЖНГП |
10.06.2009, 13:32 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Lolo_87
offline
Опыт:
1,810Активность: |
Молодец вирусаписател=) который вынудил близов сделать такую весчь, поистене внезапный и очень хороший подарок |
10.06.2009, 13:33 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
24,373Активность: |
Ну наконец-то, осталось это пощупать (с) |
10.06.2009, 13:36 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
долой заплатки! даешь хеш вместо кеша! мне совсем не нравится концепция подмены/дополнения старого велосипеда новым вместо того что бы просто залатать дырки старого... кто знает какие ошибки еще могут быть в этих хеш-таблицаъ =\ |
10.06.2009, 13:37 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
24,373Активность: |
Благо еще не начал на структурах еще не начал делать много чего. Хотя хз что удобнее:) |
10.06.2009, 13:37 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Lolo_87, это и то, и другое. Для повышения стабильности карт они ввели нативки, которые примерно похожи по принципу работы на эти две функции:
Код:
Вообще, мне кажется, что с выходом нового патча все будут потихоньку перебираться на хэш-таблицу. И так ясно, что она удобней будет... А вот что быстрее - хэш-таблица или массивы - было бы интересно узнать. agentex, про дату выхода пока ничего неизвестно. Возможно, в середине/конце лета. |
10.06.2009, 13:38 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ranger21
I love beatiul days XD
offline
Опыт:
13,274Активность: |
Короче поживём и увидим, заодно гляну стоит ли затрачивать время на переписывание кода или просто дождусь ск2 и там буду делать свою карту. |
10.06.2009, 13:42 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Ох крутота ! ShadoW DaemoN, Спасиб за перевод. Думаю, таблицы будут очень и очень удобными. Замена глючному SCV ! Быстрее бы попробовать юзать своими руками...
|
10.06.2009, 13:48 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|