Добавлен GetLocalPlayer,
опубликован
vJass
Содержание:
Начиная с версии 0.9.A.0 начинается поддержка оптимизации скриптов в JassHelper. На данный момент, все что доступно, это операция вложение функций.
Вложение функций подразумевает поиск мест с вызовом функции и замены вызова на тело этой функции. Процесс вложения производится далеко не всегда, поскольку может привести к неправильному выполнению кода карты. В основном, операция вложения производится в случае простых функций. Например:
function MyFunction takes integer a, integer b returns integer
return myarray[a]*b
endfunction
function MyOtherFunction takes nothing returns integer
return MyFunction(3,4)
endfunction
Будет заменено на
function MyOtherFunction takes nothing returns integer
return myarray[3]*4
endfunction
Вложение функций, это довольно важная часть оптимизации кода, поскольку снижение количества вызовов функций приводит к увеличению скорости выполнения скриптов карты. В то же время, это позволяет вам писать более чистый код, разрешая не тревожиться из-за объявления крохотных функций.
Когда тело функции будет вложено при оптимизации? Текущий алгоритм придерживается следующих правил:
- Функция в одну строку
- Если вызываемая функция вызывает другую функцию, чье тело начинается с set, call или return
- Если функция не устанавливает значение ни одному из ее аргументов
- Если обращение к аргументам функции совершается единожды и в порядке, в котором они указаны при объявлении функции
- Если в теле функции совершается вызов функций, что принимают аргументы с уже известными значениями
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
JackFastGame
3 года назад
0
Больше никаких оптимизаций в современных версиях компилятора vJass нет?
0
Centyrion
2 года назад
0
JackFastGame:
есть
https://xgm.guru/p/wc3/wc3mapopt-rus
Чтобы оставить комментарий, пожалуйста, войдите на сайт.