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