Вопрос, что лучше использовать реальные переменные или обычные цифры с вычислением, переменные юнитов или обычные функции? Что будет меньше вызывать нагрузку на память, вопрос бредовый но все же:)
call UnitDamageTarget(a,n,2*GetUnitAbilityLevel(a,'A00V'),false,false,null,null,null)
// или
local real damage = 2*GetUnitAbilityLevel(a,'A00V')
call UnitDamageTarget(a,n,damage,false,false,null,null,null)
//-------------------------------------------------------------------------------------------
call KillUnit(GetSpellAbilityUnit())
// или
local unit a = GetSpellAbilityUnit()
call KillUnit(a)
set a = null
Я думаю что вызыв и создание переменных нагружает больше чем уже встроенные функции, но всеравно интересно

Принятый ответ

бранчера в виртуалке жасса нет, а количество внутренних проверок рабочих объектов на каждом этапе так велико, что надеяться на "прогрев" нативок бессмысленно. Если используется больше одного раза - вбивай в локалку, если один раз - оставляй вызовом функции.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
14
3 года назад
0
rsfghd:
Гуванч, есть тест бенчмарк на мх, если уж хочется узнать какие действия будут быстрее других
да не чел меня все устраивает просто прочитав твой коммент вспомнил что баги были у меня без переменных и с переменными
0
15
3 года назад
0
Разница настолько мала, что лучше вообще так не делать.
Не убивайте читабельность в угоду мнимой производительности. Оптимизация и архитектура проекта эффективны по Парето, поэтому ищите золотую середину.
2
26
3 года назад
2
имеет смысл инлайнить если там меньше чем пару вызовов, если больше - забивать в переменные лучше

потому что вызов нативок тоже не бесплатный, и постоянно дергать оттуда данные если там их вызовов 10 не комильфо
0
32
3 года назад
0
Hate, мало того вызов нативок некоторых достаточно медленный бывает, ладно проверка уровня абилки не такая сдоупочная...
0
37
3 года назад
0
Вы не учли, что бранч предиктор это может порешать) хотя что ждать от жасса.
2
16
3 года назад
Отредактирован DracoL1ch
2
бранчера в виртуалке жасса нет, а количество внутренних проверок рабочих объектов на каждом этапе так велико, что надеяться на "прогрев" нативок бессмысленно. Если используется больше одного раза - вбивай в локалку, если один раз - оставляй вызовом функции.
Принятый ответ
2
37
3 года назад
Отредактирован ScorpioT1000
2
DracoL1ch, бранч предикшн не в виртуалках, а в железе и работает с любыми вычислениями, советую изучить тему и потестировать, довольно полезно для саморазвития 👍
0
16
3 года назад
Отредактирован DracoL1ch
0
я понял, о чем ты, я говорю, что жасс не подгадаешь - в кишках простейших действий тысячи прыжков и обращений к самым разным областям памяти, т.к. байт-код исполняется еще и в "виртуалке". нет смысла играть в компилятор, достаточно делать те оптимизации, которые не противоречат общей логике.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.