Be advised - this was written February 2017 so some of the information is no longer relevant, but there are aspect that still apply.
Performance in Arma 3
There is no doubt that Arma 3 is optimized like crap on its default settings and configurations, however, given that the game is currently running on the 32bit engine; with these steps, you can make the game run well on almost any system, even systems with APUs.
Since Arma 3 is in its 32bit engine, the game WILL NOT USE MORE THAN 2GB OF RAM AND 2GB OF VRAM. (The game will only use 1GB in systems with 4GB of RAM) The game will heavily use the first CPU core for Nvidia PhysX, but it can use up to 4 cores and 4 threads. As a result of PhysX, Intel processors dominate in performance for this game, but most quad-core or higher AMD CPUs/APUs will also do just fine.
So, lets get on to business.
SSD required ( fix fps stutters and texture popping)
-noLogs required (
Improve performance, and no stuttering)
There are many types and sizes of SSD’s drives, do some research and find what is best for you, but running Arma 3 from an SSD can make a substantial improvements.https://www.amazon.com/Internal-Solid-State-Drives/b?ie=UTF8&node=1292116011
set In-game View distance ( on foot = 1600; Ground vehicle = 2000; Air vehicle = 3000 max)
Disable Grass also Help
For AMD CPU users:
- AMD Dual Core with 4GB System Ram:
“-noSplash -cpuCount=2 -high”
- AMD Quad Core with 4GB Ram:
“-noSplash -cpuCount=4 -high”
- AMD Six Core with 4GB Ram:
“-noSplash -cpuCount=6 -high”
- AMD Eight Core with 4GB Ram:
“-noSplash -cpuCount=8 -high”
If your running more than 8GB Ram then apply this to the end of the launch line:
This will allow your game to utilize 8GB system Ram instead of 4GB.
- For Hyperthreaded CPU’s such as a Quad Core you will apply this:
This will enable your Hyperthreads on your CPU so your CPU will act as an eight core when running Arma 3.
- If you are running a Hyperthreaded Six Core then:
- If you are running a Hyperthreaded Eight Core or Eight Core Xeon then apply this:
- If you are running just a non Hyperthreaded CPU such as a Quad Core then select “4” instead of “8” same for a Dual Core you will select “2” instead of “4”.
All AMD CPU’s are NOT Hyperthreaded so Hyperthreaded options is highly not recommended as this can cause system failure or damage.
I will not be responsible for system failure and damage if you choose to select more cores then you have on your command line!
makes your operating system prioritize services and processes to run your game better but this can cause system failure and instability if you dont have a good running system. If you Overclock this can cause system instability.
disables startup videos and advertisements.
enables extra CPU cores and Hyperthreads.
when set to “6144” (6GB) and up lets your game use more system Ram then 4GB.
Do not set to higher than 4GB if you dont have at least 8GB. You can set to “8192” (8GB) if you have 12GB+ Ram.
Minimum hardware for good performance:
CPU/APU: Intel dual-core/AMD quad-core
At least 6GB of RAM
A GPU with at least 512 Stream-Cores/CUDA-Cores and at least 1GB of VRAM*
At least a 7200 RPM HDD, if not an SSD
*= 1GB Nvidia and AMD cards will handle just fine, but most APUs only have 512MB of VRAM. However, in systems with more that 4GB of RAM, the GPU on the die of the APU will use up to 1.5GB of system RAM to act as VRAM, pretty neat stuff. Also, if you’re using an APU, you’ll want the highest clockspeed possible on your RAM(e.g. DDR3-2400 RAM, DDR3-1600 RAM will perform miserably with an APU).
Now that we got the hardware side of things out of the way, let’s get on to configuring the game.
We’ll start with the Arma 3 Startup-Parameters. These parameters go in your Steam Arma 3 launch options, can be configured in the Arma 3 launcher, or at the end of your Arma 3 shortcut target (e.g. “D:\Steam\steamapps\common\Arma 3\arma3.exe” -high -maxMem=2048 -maxVRAM=2048 -cpuCount=2 -exThreads=3 -malloc=tbb4malloc_bi -noLogs -noPause)
-maxMem= | This defines how much RAM the engine may use, although it can only use 2048MBs in its 32bit state, it will be able to use more when the 64bit engine is released(eventually, sigh)
-maxVRAM= | Same explanation as -maxMem
-winxp | This forces the engine to use DirectX 9, only use this on systems with older video GPUs as for it will actually hinder performance on newer GPUs.
-noCB | Disable multi-core use, slows down rendering, but may resolve visual glitches, only use this on older systems
-cpuCount= | Set this to the number of physical cores your CPU has, can be set to less(e.g. -cpuCount=4 on an eight-core CPU)
-exThreads= | Sets how many threads the game will use(not actual CPU threads), set it to 3 for dual-cores, and 7 for quad-core or higher CPUs
-malloc= | This is the big one, this is the memory allocator which makes the engine handle memory usage in different ways. For Intel, use -malloc=tbb3malloc_bi for Core2Duo/Quad CPUs and older, and use -malloc=tbb4malloc_bi for newer CPUs. For AMD CPUs, use -malloc=nedmalloc_bi since it has better performance than the BSD-based mallocs. More documentation here.
-noLogs | Decreases unnecessary CPU usage, and prevents logs from taking up HDD/SSD space
-enableHT | Enables Hyper-Threading on newer Intel CPUs, this option will be overridden by -cpuCount, so use it without -cpuCount.
-noPause | Forces the game to continue running when window focus is lost, this helps prevent crashes or other issues when using ALT+TAB
-high | The game smokes a bag of weed. Prioritizes the game in system resource usage. This command is universal in Windows, it can be used on any shortcut target.
More documentation on Startup-Parameters here
With these parameters, the game will be forced to fully utilize the available hardware, or whatever you desire it to.
Keep in mind, Arma has always had many inherent issues with its multiplayer such as spaghetti-netcode, and poor server-to-client resource distribution(those are the two biggest ones). However, with these parameters(and the minimum recommended hardware) you should easily be able to run Arma 3 at 30 to 50 FPS on a blend of Standard to High settings.
I hope this helps!