Sunn
To feel joy, not be blue
offline
Опыт:
4,975Активность: |
Локалки vs глобалки
Возможно вопрос идиотский, но все же: если мне нужна мультиприменяемость заклинания, то что лучше - создавать набор локальных данных для каждого нового запуска, или юзать глобальные массивы данных? В первом случае иногда придеться юзать рб, во втором случае надо будет следить за индексами. Впринципе, я юзал раньше локалки+рб, но гдето видел что уже и на локалки гонят, хочется уточнить раз и навсегда. |
12.11.2008, 22:34 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
RazArt
offline
Опыт:
11,197Активность: |
Ну как вариант можно использовать глобалку массив, но лично мну кажеться лучше локалки, да и если спелл в несколько тригеров!, то будет проблематично узнать в массиве кто применил спелл |
12.11.2008, 22:37 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
логичнее назвать тему так: глобальные масивы вс кеш мультиприменимость достигается кеш+рб. локалки\глобалки тут не причем |
12.11.2008, 22:47 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Dragon Knight
Меткий стрелок!!!
offline
Опыт:
4,138Активность: |
Смотря для чего. Если надо в границах одной функции,то можно обойтись локалками или глобалками Если данные нужны не только одной функции ,то мона рб+кеш или глобальные массивы,т.к локалки действуют в рамках одной функции |
12.11.2008, 22:49 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Scorched
offline
Опыт:
7,912Активность: |
Если ты имеешь в виду кеш, то он естественно медленный, а сам рб тут ни при чем.
Цитата:
=/ |
|
12.11.2008, 22:53 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Dragon Knight
Меткий стрелок!!!
offline
Опыт:
4,138Активность: |
Цитата:
глобальними массивами тоже можно добиться мультиприменимости(хоть глобальные массивы менее удобные,чем кеш,но зато скорость извлекания данных гораздо выше,чем у кеша) |
|
12.11.2008, 22:55 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
нужно юзать локалки где надо, глобалки где надо и не нужно юзать кэш в заклинаниях |
12.11.2008, 23:01 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sunn
To feel joy, not be blue
offline
Опыт:
4,975Активность: |
Цитата:
Ммм... чем тебе глобальные массивы не угодили? Т.е. я не утверждаю что они оптимальный путь к мультиприменимости, я спрашиваю это. Если при каждом новом касте вносить данные в массив, то получим ту самую мультиприменимость) Если в триггере внести в глобальный массив данные, то можно вызывать функцию передавая ей в качестве аргументов номера нужных элементов массива. При помощи кеш+рб можно например привязать нужные значения при помощи SetValue к триггеру и из функции получить их же с GetTriggeringTrigger. Цитата:
Это и есть один из аспектов вопроса - что именно юзать) Xenosapien добавил: Цитата:
Ответ года... |
|||
12.11.2008, 23:04 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Цитата:
не тру. нет научных свидительств что он чегото там запарывает |
|
12.11.2008, 23:08 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sunn
To feel joy, not be blue
offline
Опыт:
4,975Активность: |
По идее, локалки не есть хорошо, т.к. переменная = определенный тип, и каждый раз создавая и удаляя в триггере набор локалок столько же раз вызываются конструкторы и деструкторы, хотя я хз как оно с простыми типами вроде риал/инт, но вроде у всех типов есть один базовый. |
12.11.2008, 23:11 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Xenosapien делай как тебе удобнее...
|
12.11.2008, 23:14 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Scorched
offline
Опыт:
7,912Активность: |
Цитата:
смысл? локалки все же удобнее и быстрее, чем такой стек Цитата:
на примере юнита. конструктор вызывается, когда юнит создается на карте, деструктор - когда ремувится. а при копировании в локалку копируется только хендл на него - число, которое можно посмотреть через рб |
||
12.11.2008, 23:52 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
они по сути все одинаковые ScorpioT1000 добавил: Цитата:
http://xgm.guru/forum/showthread.php?t=15202 |
||
13.11.2008, 01:47 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
I.Todd
offline
Опыт:
12,046Активность: |
мне все таки кажется, что имея опыт программирования на Jass не более полугода, спорить с людьми, которые с jassщм знакомы несколько лет, все таки несколько глуповато.
Xenosapien, обрати внимания на посты Джона и Скорпио. Да и в дальнейшем такие вопросы в другом разделе больше смысла задавать. |
13.11.2008, 10:00 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
да, про неудаление строк то я не знал остальные пункты там не несут в себе никакого зла, ведь юнит удаляется движком не сразу после смерти agentex добавил: ну + можно поставить проверку на бафф, если вдруг создастся юнит на таком же адресе |
13.11.2008, 10:52 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
ооп ест моск) все переменные в жас - тип dword и с этим ничего не сделать) тем более вы выделяете место только под этот дворд) обращение к локалкам самое быстро, но идет немного времени на выделение главное не использовать связку локалки+ТриггерСлипАкшин и не записывать в кешь инт значения хендлов |
|
13.11.2008, 14:37 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
Отредактировано Jon, 13.11.2008 в 15:32. |
|
13.11.2008, 15:15 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Цитата:
dword - это вообще мера длинны, используется в качестве обозначения беззнакового типа аналогичной длинны |
|
13.11.2008, 15:25 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
В любом случае локалки удобнее, а разница в производительности не такая большая. Тем более глобалки медленне чем локалки.
PlayerDark добавил: jass вобще сам по себе тормоз :) |
13.11.2008, 15:27 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Цитата:
NETRAT добавил: глобалки могут быть медленнее только в компилируемых языках где имеет значение является ли указатель far или near, и то разница в пару тактов |
|
13.11.2008, 15:31 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|