Часть 3. Настройка командной строки запуска Arma 3 (bat-файла START_Elysium_64bit.bat, который находится в корневой папке Arma 3).
Открываем этот файл любым текстовым редактором (например, стандартным Блокнотом) и видим примерно следующее:
start arma3battleye.exe -win64 -malloc=tbb4malloc_bi_x64 -cpuCount=4 -exThreads=7 -world=empty -nologs -nolauncher -nobenchmark -noPause -nosplash -skipIntro -mod=@Elysium
Далее мы разберем основные параметры этой строки и в каких случаях лучше использовать какие значения этих параметров.
3.1 start arma3battleye.exe -win64 оставляем без изменений в любом случае, это запуск игры в 64-разрядном режиме через античит Battleye.
3.2 -malloc=tbb4malloc_bi_x64 - здесь указывается, какая библиотека будет отвечать за распределение оперативной памяти при игре. Если у вас процессор Intel, рекомендуется оставить этот параметр без изменения, для процессоров от AMD рекомендуется изменить на
-malloc=jemalloc_bi_x64
Вы можете так-же попробовать передать управление памятью операционной системе, указав этот параметр как
-malloc=system, но, по собственному опыту, это приносит некоторый положительный эффект только в случае, если у вас катастрофически не хватает оперативной памяти и игра из-за этого жутко "фризит".
Следующий эксперимент рекомендуется проводить только "продвинутым" пользователям. Если вы с компьютером "на Вы", то лучше этого не делать.
Качаем отсюда
http://www.armaholic.com/page.php?id=31217 аллокатор памяти, оптимизированный сторонним разработчиком именно для Arma 3. Распаковываем архив. Смотрим (например тем-же CPU-Z), какой набор инструкций поддерживается вашим процессором (в порядке от более новых к более старым), AVX2, AVX, SSE4. Соответственно выбираем версию библиотеки AVX2, AVX или default, копируем dll-файл в папку
Arma3\Dll\. Из папки Config выбираем WithLargePages (поддержка больших страниц) или default (без поддержки больших страниц) и копируем соответствующий файл cma.ini в корневую папку
Arma3\.
Лично мне, перепробовав несколько вариантов данного аллокатора, удалось снизить потребление оперативной памяти (примерно на 20-30%). Существенных изменений FPS я не заметил.
3.3 -cpuCount=4 - здесь должно быть указано количество физических ядер вашего процессора. Именно физических, а не потоков. Если вы всё-таки используете Hyper-treading, то к этому параметру нужно добавить еще один,
-enableHT, чтобы игра знала, что вы используете многопоточность. Итого, при включенном Hyper-treading у вас должно стать примерно так:
-cpuCount=4 -enableHT
3.4 -exThreads=7 - данный параметр позволяет (или не позволяет) игре выносить обработку некоторых данных в отдельные потоки.
Если у вас 2 физических ядра (или просто слабый/старый процессор) рекомендуется использовать все его потоки для всех задач, это даст более равномерную нагрузку на ядра:
-exThreads=0
Если у вас 4 физических ядра и приличная тактовая частота, можете поэкспериментировать с другими вариантами настройки:
-exThreads=1 - вывести файловые операции в отдельный поток.
-exThreads=3 - вывести файловые операции и загрузку текстур в отдельные потоки.
-exThreads=5 - вывести файловые операции и загрузку геометрии в отдельные потоки.
Если у вас 6+ физических ядер, то скорее всего вам подойдет вариант:
-exThreads=7 - вывести файловые операции, загрузку геометрии и текстур в отдельные потоки.
3.5 -world=empty -nologs -nolauncher -nobenchmark -noPause -nosplash -skipIntro -mod=@Elysium - это лучше всего оставить без изменений.
Примечание: параметр -nologs отключает ведение логов игры, тем самым немного повышая производительность. Но если у вас наблюдаются какие-либо проблемы, то вы можете убрать его, тем самым включив логи, в которые выводится техническая информация, полезная при диагностике проблем.
Нажмите, чтобы раскрыть...