kvaDrug
offline
Опыт:
1,601Активность: |
UCV - алтернатива SCV
Все знают SCV и ее недостатки. Я обратил внимание на систему custom value(user data) - стандартная функция джаза. Позволяет присаивать юниту целое число. Только одно. Но в 1 целое число можно зашифровать несколько других: a, b, c, d, e, f, g, h итд. Математически это выглядет вот так: 2^a*3^b*5^c*7^d*11^e ну и тд. Алгоритм расшифровки несложен, как и алгоритм получения простых чисел. У этой системы есть ограничение - максимальный размер целого числа(который мне неизвестен). Вывод: Для записи небольших чисел лучше использовать систему UltraCustomValue, которую я изложил выше. Вывод не вполне обоснован, поэтому нужны комменты. |
12.08.2008, 17:31 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Лось
offline
Опыт:
7,223Активность: |
Ну если бы была у таймера/триггера юзер дата, тогда можно. А так получаются те же проблемы что и кэшом... |
12.08.2008, 18:09 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Тип интеджер - число с разрядностью 32 бита, может принимать значения от [ -(2^31) .. (2^31)-1 ]
Дополнительную информацию про тип читай в статье Адольфа - http://xgm.guru/articles.php?section=wc3&name=about_int Идея проста как шпингалет. В программировании побитовый сдвиг для "упаковывания" нескольких чисел в одно уже давно используется. Пример - в заголовке TGA файла байт #17 хранит в себе 4 параметра. Касаемо джасса: 1. Либо нужно использовать одинаковый размер для областей хранения - тогда это будет малоэффективно. 2. Либо использовать размер блока, в который умешается число, плюс единица. Но встает вопрос о том, как затем извлечь необходимые данные без использования лишних средств. Ну и к тому же родной Custom Value есть только у юнита и предмета, с остальными типами нужно писать дополнительные размещающие функции. |
12.08.2008, 18:10 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
простые числа годятся только для хеширования (необратимых преобразований)
в жассе нет битовых сдвигов => любая попытка сжатия данных иррациональна и неэффективна
в случае когда нам нужно привязать к юниту несколько значений, мы используем кеш |
12.08.2008, 18:53 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
kvaDrug
offline
Опыт:
1,601Активность: |
ShadoW DaemoN Число параметров может быть любым. Расшифровываем (делением) сначала степень 2 потом 3 а в какой-то момент число-код станет делиться только на 1. Значит параметров больше нет.
Цитата:
Шпингалет даже сложнее. NETRAT, я пытаюсь обойти кеш. Решаю проблему очень родственную вот этой теме. Мне нужно передавать в функцию 14 параметров, с малым периодом. Конечно, про кеш я знаю, но всетаки ищу другой способ. |
|
12.08.2008, 22:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
kvaDrug ты можеш передать таким образом только 32 бита, в джазе вытаскивание бита из числа весьма затратачная операция по сравнению например с Си
да и передавать информацию можно только юнитам и предметам, так какой смысл? |
12.08.2008, 23:30 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Имхо структуры онли) |
12.08.2008, 23:35 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Radiant
Silence
offline
Опыт:
4,907Активность: |
Зачем было устраивать акцию протеста системе DimonT-а? Как будто во всех грехах кэша виновато сцв =) Как уже сказано было, информацию можно передать только юниту и предмету(очень кстати жаль), такчто смысла практически нет... |
13.08.2008, 09:56 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
Это ИМХО самый извращеный способ присваивать юниту какой либо параметр. К тому же вся эта система будет работать даже медленнее чем SCV.
PlayerDark добавил: для передачи большого кол - ва параметров упаковывайте их все в строку. |
13.08.2008, 10:46 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
умножение / делением http://xgm.guru/articles.php?section=wc3&name=about_int вообще я писал тут как это все можно использовать, и примерно где это может быть рациональней Цитата:
кешь зло, баги возможны при записывание чего либо именно на хендл юнита записать в юзер дату структуру? и в нее юнита и все будет ок (ну если сделать норм отчистку) |
||
13.08.2008, 10:50 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
kvaDrug
offline
Опыт:
1,601Активность: |
Цитата:
Не знал, что это система DimonT-а, думал просто такая-себе самостоятельная система, и это не акция протеста. Цитата:
Не вкоем случае. 100% быстрее. И главное беззатупно, что собственно я ищу. |
||
13.08.2008, 12:15 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
ADOLF умножение/деление на порядок отличается от битовых сдвигов, отсюда и иррациональность
извращения подобного рода хуже чем кеш |
13.08.2008, 13:15 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ADOLF, для сравнения: в си битовый здвиг быстрее операции сложения
|
13.08.2008, 14:21 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
kvaDrug
offline
Опыт:
1,601Активность: |
Все понятно. Кешу это не альтернатива. Теперь я больше знаю о джазе) (планирую изучить полностью до субботы) |
13.08.2008, 16:24 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
всеравно это будет быстрее в некоторых случаях (ну точно быстрее чем бд по обьектам на массивах/кеше) Цитата:
резон? кешь медленне и неудобнее, чем же он тогда лучше?! Цитата:
при чем тут си? да, это разные интсрукции, сдвиги быстрее и? Цитата:
лол) удачи! |
||||
13.08.2008, 18:02 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Именно в той теме придумано несколько хороших способов. Используй их и не мучайся. Надеюсь, поймёшь хоть один Цитата:
|
||
13.08.2008, 20:20 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|