505-я версия является очередным релиз-кандидатом. Сейчас её обкатают, и если через неделю выйдет Стабильная версия 1.12 - перейдём на неё.Добавлено (06.09.2011, 14:48:49)
---------------------------------------------
http://ace.dev-heaven.net/wagn/Performance_Revolution
ПРОБЛЕМА:
Сильно нагруженные моды, каковым является и ACE, базируются полностью на скриптовой основе которая и позволяет внедрять все новшества мода. Они зачастую требуют массы времени для инициализации (загрузки) игры, перехода от миссии к миссии, смены островов, перехода от редактора в игру и обратно и т.д. После однократной прогрузки дела идут уже веселее, н овсё равно медленнее чем "чистая" игра.
Происходит это в основном потому, что все скрипты должны пройти т.н. предобработку, т.е. быть скомпилированы, перед каждым использованием (читай - перед каждым стартом миссии). Также эффективное торможение вызывают используемые в большом количестве переменные и макросы.
Также XEH вызывает высокую загрузку скриптов в процессе инициализации объектов (юниты/техника/и т.д.) из за того что должны быть обработаны все eventhandlers (кривизна самого движка и баги в мультиплеере). И эта проблема нарастает в миссиях с большим кол-вом динамически появляющихся объектов, что на сегодняшний день уже стало стандартом.
Ограничитель и распределитель ресурсов для выполнения скриптов, представленный в ArmA2, только добавляет вопросов.
РЕШЕНИЕ.
С выходом версии ACE 1.12 RC2, все моды/аддоны/миссии использовавшие макросы CBA, или XEH-эвенты, будут демонстрировать значительно увиличившуюся производительность при инициализации.
Особенно это будет заметно после повторного запуска миссии или при смене островов, но и первые запуски станут быстрее!
Мы добились этого путём улучшения кода и выделения кеша для всех компилируемых скриптов (preProcessFile'd scripts) (включая CfgFunctions, функции BIS-овских модулей и т.д.), и для всех XEH-эвентов по классу CfgVehicle.
Кэш хранится в uiNamespace и доступен ан протяжении всей игровой сессии (пока сама игра запущена).
Каждый класс кешируется всего лишь раз, эвенты mission и campaignConfigfile events меняются каждую миссию, но также однократно кешируются классы CfgVehicle.
Вы можете найти лог изменений в превью для RC2.
На данный момент это всего лишь первая версия, и мы чувствуем, что сможем ещё больше улучшить производительность в будущем.