Optimierung von Arma

  • In Anbetracht weiterer Problem und Personen, welche eventuell Hilfe benötigen um die letzten FPS / TPS aus Arma 3 herauszukitzeln werde ich einmal eine kurze Anleitung anhalten, inwiefern ihr dort etwas anstellen könnt.


    Grundlegend möchte ich vorweg greifen, dass die folgenden Erkenntnisse, Ergebnisse aus Recherche und Erfahrungen sind, diese jedoch nicht ausschließen, dass der Effekt bei jedem garantiert ist oder ggf. eine effektive Verbesserung aufweist.



    Parameter Optimierung

    Grundsätzlich bietet Arma III direkt Startparameter, welche sich auf die Leistung auswirken. Diese limitieren oder definieren bestimmte Ressourcen die ihr Arma zur Verfügung stellen wollt.


    Code
    1. -enableHT | -cpuCount=<Core Anzahl>


    Diese Option lässt euch die Anzahl an Kernen, welche genutzt werden sollen definieren. Besitzt ihr eine Intel CPU könnt ihr einfach die Option -enableHT nutzen.

    Besitzt ihr eine AMD CPU solltet ihr die Anzahl der Kerne mithilfe von -cpuCount direkt angeben.


    Code
    1. -exThreads=<Nummerischer Ausdruck>


    Hier wird eine Bitflag definiert, inwiefern die Arma III Engine Parallelisierung nutzen soll. Ich kann jedem empfehlen der eine 4 Core+ CPU besitzt hier die Option -exThreads=7 anzugeben um das Modelloading, Textureloading und File Operationen auszulagern.


    Code
    1. -hugePages


    Solltet ihr eurem Spiel genug Arbeitsspeicher bereitstellen bzw. euer System genug Arbeitsspeicher besitzen, könnt ihr die Option -hugePages angeben. Dies verändert das Allozierungsverhalten des Memory Allocator ( also die Arbeitspeicherhandhabung ).


    Code
    1. -nosplash -skipIntro -world=empty -noPause -noBenchmark -malloc=tbb4malloc_bi_x64


    Der letzte teil der Parameter Optimierung sind einfache Angaben, welche Ladebildschirme und Hintergrundszenarien im Menu von Arma III deaktivieren bzw. das Verhalten beim heraustabben / minimieren aus dem Spiel und den spezifischen Memory Allocator definieren.


    -noPause sorgt dafür, dass ihr fließend auf Arma heraus und auch wieder hinein tabben könnt oder das Spiel minimieren. Unerwünschte Nebeneffekte sind fortlaufende Singleplayermissionen :sleeping:


    -malloc=tbb4malloc_bi_x64 oder -malloc=system gibt an, welche Allocator ihr nutzen wollt. Der Standard ist als tbb4malloc_bi_x64 ausgewiesen und sollte auch genutzt werden. Alternativ sollte es keine negativen Effekte haben in einem Win10 den System-Allocator zu nutzen.


    Beispiel System:

    • AMD Ryzen 7 2700X
    • AMD RX Vega 56
    • 2 x 16GB 3200MHz Arbeitsspeicher
    • Samsung Evo 860 Pro

    -cpuCount=16 -exThreads=7 -nosplash -world=empty -noPause -noBenchmark -malloc=tbb4malloc_bi_x64 -loadMissionToMemory -hugePages



    Executable Optimierung

    Es ist durchaus möglich, dass der ein oder andere diese Option bereits kennt.

    Aus dem Hause Bohemia gibt es weitere Executables, welche mehr Leistung als die Stable-Main-Branch bringt. Es gibt jedoch gewisse Nachteile, welche in den letzten 1,5a Erfahrung mit diesen nicht aufgetreten sind.

    Diese Probleme wären eine nicht garantierte 100%ige Stabilität und ein höherer Update Interval.


    Für die Modder ist im speziellen die Profiling Branch gedacht, da diese noch alle Debug Funktionen aus SQF enthält. Die Performance Branch schmeißte diese raus.


    Ob diese Punkte nun negativ oder nicht sind, muss jeder für sich entscheiden. Ich konnte bisher in all der Zeit jedoch keine Probleme feststellen.

    Die jeweiligen Dateien findet ihr in der Dropbox von Dwarden.

    Dort ladet ihr das jeweilige Paket herunter, entpackt es in euer Arma 3 Verzeichnis und wählt im Launcher die jeweilige Executable.



    Work in Progress...

    Einmal editiert, zuletzt von LtJulius () aus folgendem Grund: Performance Binaries wurden aktualisiert.