![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
Патчи 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. |
![]() |
#1
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
BK.Jugg
террорист из КиП
![]() ![]() offline
Опыт:
27,066Активность: |
» раскрыть Код:
o_O новые жасс функции чтоле? Отредактировано ADOLF, 10.06.2009 в 12:45. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Reaver
I am Олдфаг!
![]() ![]() offline
Опыт:
3,426Активность: |
Одни хэндлы)) Хотя ещё есть интересности) |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Lolo_87
![]() ![]() offline
Опыт:
1,810Активность: |
Я думаю вместо SCV они хотят сделать вот это) теперь КЭШь отдыхает, хм... страно куда он будет их сам сохранять... Отредактировано Lolo_87, 10.06.2009 в 12:47. |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
SRes
1110101000
![]() ![]() offline
Опыт:
9,997Активность: |
Близзы рулят ! Они убили РБ ! Я был прав :) ! Зато, они добавили аналог РБ как нативки ! Что может быть лучше ?
Если я чего-то не понял - пожалуйста не пинайте, т.к. я инглиш не сильно бум-бум |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ranger21
I love beatiul days XD
![]() ![]() offline
Опыт:
13,274Активность: |
Ммм... теперь не придётся пользоваться функцией H2I?
=))) дык это же ништяк...
Надеюсь в СК2 редакторе они учтут все эти фичи |
![]() |
#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. |
![]() |
#7
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
BK.Jugg
террорист из КиП
![]() ![]() offline
Опыт:
27,066Активность: |
ShadoW DaemoN, ятп это для сис-мы Save/Load?
|
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
свдн молодец=)
хм, ну я пока немогу ничего сказать... это надо пощупать) ADOLF добавил: BK.Jugg, нет |
![]() |
#9
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Enein
Silenced by ZlaYa1000
![]() ![]() offline
Опыт:
43,453Активность: |
Хорошо:
Цитата:
Плохо: много переделывать придется т_т у меня около 70 спеллов в карте на кеше... |
|
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
BK.Jugg, не только. Близзы утверждают, их новоиспеченная хэш-таблица работает намного быстрее, чем GC, да и хранить можно практически любой тип. Если их заверения верны, то это значит, что системы аттача числа на хендл внезапно становятся бесполезными, так как в большинстве случаев новые нативные функции будут работать быстрее.
|
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Lolo_87
![]() ![]() offline
Опыт:
1,810Активность: |
Это замена РБ или просто нововведение? |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
охренеть, ведь этот патч перевернет весь мир
да не ожидал такой щедрости от близов. agentex добавил: а кода патчик станет доступен для качания? на офф фтп его еще нет agentex добавил: да, теперь ждем обновленный ЖНГП |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Lolo_87
![]() ![]() offline
Опыт:
1,810Активность: |
Молодец вирусаписател=) который вынудил близов сделать такую весчь, поистене внезапный и очень хороший подарок |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Артте
Open up your eyes
![]() ![]() offline
Опыт:
23,423Активность: |
Ну наконец-то, осталось это пощупать (с) |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
83,712Активность: |
долой заплатки! даешь хеш вместо кеша! мне совсем не нравится концепция подмены/дополнения старого велосипеда новым вместо того что бы просто залатать дырки старого... кто знает какие ошибки еще могут быть в этих хеш-таблицаъ =\ |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Артте
Open up your eyes
![]() ![]() offline
Опыт:
23,423Активность: |
Благо еще не начал на структурах еще не начал делать много чего. Хотя хз что удобнее:) |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
Lolo_87, это и то, и другое. Для повышения стабильности карт они ввели нативки, которые примерно похожи по принципу работы на эти две функции:
Код:
Вообще, мне кажется, что с выходом нового патча все будут потихоньку перебираться на хэш-таблицу. И так ясно, что она удобней будет... А вот что быстрее - хэш-таблица или массивы - было бы интересно узнать. agentex, про дату выхода пока ничего неизвестно. Возможно, в середине/конце лета. |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ranger21
I love beatiul days XD
![]() ![]() offline
Опыт:
13,274Активность: |
Короче поживём и увидим, заодно гляну стоит ли затрачивать время на переписывание кода или просто дождусь ск2 и там буду делать свою карту. |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
SRes
1110101000
![]() ![]() offline
Опыт:
9,997Активность: |
Ох крутота ! ShadoW DaemoN, Спасиб за перевод. Думаю, таблицы будут очень и очень удобными. Замена глючному SCV ! Быстрее бы попробовать юзать своими руками...
|
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|