Arma 3
409 ratings
ARMA 3 Complete Performance Guide [2020] [ENG]
By Kubas
Universal and complete performance guide for ARMA 3 based on personal experience and performed testing.
1. Basic Information
Let's start with basic info: setting cpuCount, exThreads or most other parameters does nothing, they are correctly recognized and set by ARMA on it's own (and exThreads overrides cpuCount anyway, so if someone says to set both then you know how much he knows about optimizing ARMA ;) ). If you set them manually you are just overriding something that was set correctly anyway.
In this guide I'm going to show you how to really improve performance. However don't expect miracles, in ARMA limiting factor in 99% of cases is CPU. ARMA puts 95% of work on one thread, so what you need the most to get good FPS is CPU with high IPC and high clocks.
Mods also reduce performance, so if you use many mods you should disable them one by one, check which one reduces performance the most and then decide if it's really worth to use it. In my case all mods I use are reducing performance by 20fps (!) when compared to vanilla.

Important: Advice given by author in this guide were personally tested by him and are used by him. However this not mean they will not cause issues on different configurations or different PCs. Author of this guide is not responsible for any issues or damages caused by use of any or all advice in this guide. Any changes to game, system and your PC are applied on your own responsibility. Please also see EULA.
2. Editing game files
There are few things you will need to edit in game files to make it run better.

2.1. Editing Arma3.cfg
  1. Go to C:\Users\[your_username]\Documents\Arma 3
  2. Open Arma3.cfg with text editor of your choice (I recommend notepad++)
  3. Find GPU_MaxFramesAhead and set it to 1 (GPU_MaxFramesAhead=1;)
  4. Find GPU_DetectedFramesAhead and set it to 1 (GPU_DetectedFramesAhead=1;)
  5. (Optional) If you have monitor with refresh rate above 60Hz set refresh to your refresh rate (for example: refresh=144;)
  6. Save changes and close file
Why do you change these things? It will reduce input lag, it can increase performance. However fps drops will be more noticeable, but overall performance should be better.

2.2. Editing *.Arma3Profile
This is optional, it's not going to improve performance, but it's recommended anyway.
  1. Go to C:\Users\[your_username]\Documents\Arma 3
  2. Open [your_username].Arma3Profile with text editor of your choice (I recommend notepad++)
  3. Find mouseSmoothing and set it to 0 (mouseSmoothing=0;)
  4. Find mouseAcceleration and set it to 0 (mouseAcceleration=0;)
  5. Find fovTop and set it to 1.03 (fovTop=1.03;)
  6. Find fovLeft and set it to 1.83 (fovLeft=1.83;)
  7. Save changes and close file
Why do you change these things? First two will allow game to accept raw input from mouse instead of game trying to correct mouse movement. Second one will increase FOV from claustrophobic 70° to 90°. You can set FOV how you prefer, just use this great fov calculator by Metalman[] so you will know how to set values. You will find comparsion of different FOV settings in my other guide:
3. Changing settings in launcher
If you are one of guys that rely on setting parameters for exe instead of using ARMA 3 Launcher then you have to apply appropriate changes on your own. There is no need to make it harder than it is, ARMA 3 Launcher is great GUI tools so if you want to be stuck in DOS era that's your choice.
  1. Start ARMA 3 Launcher
  2. Open Options (upper right corner)
  3. Select Launcher Options
  4. Set "Action after game start" to "Close Launcher after clicking Play"
  5. Select PARAMETERS and go to ALL PARAMETERS tab
  6. Set platform, if you have 64-bit OS pick 64-bit and if you have 32-bit OS pick 32-bit
  7. Tick "Enabled Large-page Support" checkbox
  8. Tick "No Logs" checkbox
  9. Tick "No Pause" checkbox (this one just allows ARMA 3 to run in background when it's minimized/not active)
4. Performance binary and memory allocator
Dwarden (ARMA 3 developer at Bohemia Interactive) is releasing improved exe files after every patch. I highly recommend using them as they do make a noticeable difference. There are two ways to download them, automatic (many thanks to Greenfist/Sams for pointing this out as I wasn't aware!) and manual. It's safe to use manual, but please remember to ALWAYS download files straight from Dwarden's dropbox or google drive, never use some 3rd party reuploads as they may not be legit performance exes, but may contain malware.
You can find Dwarden's post that links to new exe files here[].

IMPORTANT: When new arma version comes out you will need to switch back to default branch from performance one (see 4.1 but select default instead of profiling) or otherwise game will crash. This is happening right now since 1.98 was released, but performance exe was not updated yet.

4.1. Performance exe
AUTOMATIC (Recommended):
  1. Open Steam
  2. Open ARMA 3 Properties (right mouse button on ARMA 3 in library)
  3. Go to BETA tab
  4. Enter following code and confirm it: CautionSpecialProfilingAndTestingBranchArma3
  5. Select "profiling - Performance Profiling Build"
This will automatically download newest performance exe once they are available.

NOTE: You will have to redo this after every ARMA 3 update as every update will replace exe. You need to pick proper exe for your OS version (32-bit or 64-bit) and your game version (currently 1.92).
  1. Go to Dwarden's google drive[] or dropbox[] and download newest performance exe (currently: 192perf -> perf02 -> performance exe). If you use 64-bit OS and 64-bit ARMA client download arma3client_x64_performance and if you use 32-bit ARMA client download arma3client_performance.
  2. Unpack downloaded exe to Steam\steamapps\common\Arma 3
  3. Rename your current exe, for 64-bit: arma3_x64.exe to arma3_x64.exe.backup, for 32-bit: arma3.exe to arma3.exe.backup
  4. Rename your performance exe, for 64-bit to arma3_x64.exe, for 32-bit to arma3.exe

4.2. Memory allocator
NOTE: In downloaded archive there are few different allocators and different configs, it's best to test them out and pick one that will provide best performance for you.
  1. Go to Armaholic and download custom xtbbmalloc by _blub[]
  2. Unzip downloaded archive
  3. Copy config file to Steam\steamapps\common\Arma 3, for 32-bit: copy xtbbmalloc.ini from malloc\32-bit\Configurations\LargePages, for 64-bit: copy cma.ini from malloc\64-bit\Config\WithLargePages
  4. Copy dll file to Steam\steamapps\common\Arma 3\Dll, for 32-bit: copy xtbbmalloc.dll from malloc\32-bit\, for 64-bit: copy cma_x64.dll from malloc\64-bit\Default\
  5. Start ARMA 3 launcher
  6. Go to PARAMETERS and open ALL PARAMETERS tab
  7. Enable "Memory allocator" checkbox and set it to one matching previously copied one (for 32-bit: xtbbmalloc, for 64-bit: cma_x64)
5. Process priority and CPU affinity
  1. Download and install Process Lasso by Bitsum[]
  2. Start Process Lasso
  3. Start ARMA 3 (game, not launcher)
  4. In Process Lasso click with right mouse button on Arma process -> Priority class -> Always -> Above normal (do NOT ever set it to realtime priority)
  5. Click with right mouse button on arma process -> CPU affinity -> Always -> Untick CPU 0 (do this only if you have 4 or more cores)
NOTE: Alternatively if you don't want to use 3rd party software you can use Task Manager to set priority and affinity, but you will have to do it EVERY time you start game (while with Process Lasso you do it once)
6. Windows optimizations
6.1. Drivers update
Keeping your driver up-to-date is important, because that way you always get new fixes and performance improvements for games. However it's especially important to update your drivers if you are using Windows 10 as May Update will be released shortly and with it WDDM 2.6 (windows drivers architecture). On drivers that don't support WDDM 2.6 there is a performance decrease, but updating drivers to ones that support WDDM 2.6 fixes it (info based on Windows 10 Insider Preview with May update)
  1. Download newest drivers for you GPU and you OS, NVIDIA cards: drivers[], AMD cards: drivers[]
  2. Download and unzip DDU by Wagnard[]
  3. (only for Windows 10) Disconnect PC from Internet (otherwise after you will delete drivers Windows will attempt to download and install new ones automatically)
  4. Start DDU, close windows that will pop up
  5. Open Options, tick "Enable Safe Mode dialog" checkbox
  6. Restart DDU
  7. Select Safe Mode and allow to reboot into safe mode
  8. Windows will boot in safe mode, DDU should start automatically - if it won't then start it manually
  9. Open Options, ticks all NVIDIA specific or AMD specific options (depending on card you own)
  10. Close options
  11. Select GPU as device type
  12. Select NVIDIA or AMD as device (depending on card you own)
  13. Click Clean and restart
  14. After your PC will restart install previously downloaded drivers. For NV cards I recommend do install "light" pack of drivers, during installation select NVIDIA graphic driver (without GeForce Experience) -> Custom install -> untick everything but Graphics driver, PhysX System Software, NVIDIA NGX. You can tick HD Audio Driver if you use HDMI/DP to transmit audio from PC to monitor.
  15. Restart PC
  16. (only for Windows 10) Connect PC to Internet

6.2. NVIDIA Control Panel
  1. Open NV Control Panel
  2. Go to Manage 3D Settings
  3. Set Power management mode to Optimal
  4. Set Maximum rendered frames to 1
  5. Go to Program Settings tab
  6. Add arma exe file (for 32-bit: arma3.exe, for 64-bit: arma3_x64.exe)
  7. Set Power management mode to Prefer maximum performance

6.3. (Optional) Disable NV Telemetry Container
If you will do this you CANNOT use NV Experience software.
  1. Open services.msc
  2. Find NVIDIA Telemetry Container
  3. Click with right mouse button on it and open properties
  4. Click Stop button
  5. Set launch mode to disabled

6.4. Windows 10 - DVR
  1. Start regedit
  2. Go to HKEY_CURRENT_USER\System\GameConfigStore
  3. Set GameDVR_Enabled value to 0
  4. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\
  5. Create new key and name it GameDVR
  6. Inside create new DWORD 32-bit and name it "AllowGameDVR"
  7. Set AllowGameDVR value to 0

6.5. Standby list cleaner
  1. Download and unzip ISLC by Wagnard[]
  2. Start ISLC
  3. Set "The list size is at least" value depending on your available RAM (less RAM = set it to lower value). For 16GB of RAM I recommend 1200MB, for 8GB probably 800MB should be good.
  4. Set "Free memory is lower than" value depening on your available ram. For 16GB of RAM I recommend 2000MB, for 8GB probably 1500MB should be good.
  5. Press Start button
  6. DO NOT close the app (it needs to be running in background)
Clearing standby list is performed by CPU, so do NOT set values too low as it will just force CPU to clean standby list very often and can negatively impact performance in game. You want it to be cleared as rare as possible but before you will be left with small amount of free RAM.
7. Mods
If you are using low-end or high-end machine you may want to download Enhanced Video Settings mod by Sams. It allows to set graphic settings lower than it's normally possible and higher than it's normally possible. It adds Super Low and Ultra+ settings in game.
If you get very low FPS you can set Textures and Object to super low.
8. In-Game settings
8.1. General tab
DO NOT reduce sampling unless you have tried other options and still struggle to maintain playable FPS.
If you struggle with performance you should start decreasing settings in following order: Cloud, Shadow, Particles, Terrain, Objects. Try to keep Objects as high as possible, they are quite taxing, but important (they decide how complex a scene can be).
PIP: If you have performance issue in vehicles or in any other situation where there are mirrors or dashboard cameras you should reduce or even disable PIP. It basically render another scene (what you see in car mirror in game is not a reflection, is new scene rendered from different camera position and displayed in game)
Textures: If you have enough vram (4GB and above) you are free to set it on v. high or ultra. Unless you don't have enough vram there is no need to set it differently.

When it comes to visibility IMO there is no need to go over 5000 with overall (I recommend 4000), 4000 with object (I recommend 3000) and 100 with shadows (I recommend 50).

8.2. Display tab
Display mode: Fullscreen (or Fullscreen window if you are using more than 1 monitor)
Resolution: Set it to native resolution of your monitor (usually 1920x1080)
Aspect Ratio: Set it to match your monitor (usually 16:9)
VSync: Disabled

8.3. AA & PP tab
Bloom: 0
Radial blur: 0
Rotation blur: 0
Depth of field: 0
Sharpen: 100

Most taxing here is PPAA, FSAA (especially when paired with ATOC) and AO. If you struggle with performance disable PPAA, reduce FSAA and AO (or even disable if needed).
Anisotropic filtering have minimal performance impact so I recommend to leave it at least on high.

NOTE: If you are decreasing graphic settings, samapling, etc. and still can't get playable FPS that means CPU is limiting you.
9. Summary
That's all. After you completed everything ARMA should be running better. FPS improvement largely depends on hardware you own, mission you play, mods you use. For me on average it was 5FPS while using fully modded game (almost 80GB of mods) and up to 10FPS while playing KotH. On the top of that stuttering issue I had is completely gone, but bear in mind that freezes/fps drops caused by loading terring while you move are not same as stuttering (to fix/reduce those you need SSD). Your results may be different.
If you still struggle to get good FPS then it may be a result of too slow CPU (GPU is rarely an issue in ARMA), unoptimized mission, unoptimized/too many mods.

I would like to thanks creators of all software that allows to perform these optimizations (in random order):
  • Dwarden from Bohemia Interactive for continuous work to improve game and it's performance
  • _blub from Armaholic for custom memory allocator
  • Wagnard from Wagnardsoft for DDU and ISLC
  • Jeremy Collake from Bitsum LLC for Process Lasso
  • Greenfist/Sams for Enhanced Video Settings mod and pointing out easier way to get performance exe files
Many thanks for all your hard work!
10. EULA
Under no circumstances shall author of this guide be liable for any direct, indirect, incidental, consequential, special or exemplary damages arising out of or in connection with your access or use of this guide and third party content or services or software, whether or not the damages were foreseeable and whether or not author was advised of the possibility of such damages. You (user) are using any or all advice posted in this guide solely on your own responsibility. Use of any or all advice posted in this guide requires you to accept that author cannot be held responsible for any damages and accept this EULA.

It is forbidden to copy, edit or repost this guide without author's permission and without crediting author
< >
Kubas  [author] 14 hours ago 
@Adam Beckett This happens after every major update. We should see it again in a few days, unless most/all of DWardens improvements were merged to main arma branch and he decided there's nothing more he can squeeze out of this game.
Adam Beckett Oct 19 @ 12:08pm 
As of today "CautionSpecialProfilingAndTestingBranchArma3" peformance 'profiling branch' disappeared from the Beta branch list.

Arma 3 is force-feeding the 'stable' branch to users -_-
ZivNio Oct 18 @ 1:43am 
@PotHat ... You can try, but it usually does not help. In the past it was always suggested to take out the RAM and clean the contacts when problems occurred. It doesn't help either but the people were busy for a while xD
PotHat💦🍆🦢 Oct 17 @ 9:19pm 
Why did you uncheck CPU 0 in CPU affinity?
ZivNio Oct 15 @ 11:20am 
@NinjaGoatX Now you have said exactly what you wanted to say but did not write it. I can absolutely agree with this statement. So guys, start by updating your system and not always blame the games.
NinjaGoatX Oct 15 @ 1:19am 
@ZivNio I didn't say a Ryzen cpu couldn't run it. I said you needed a decent one that's fairly up to date (Like your 3700X). If he's using something out of date however, like a Ryzen 1000-series cpu, he is going to struggle. I mean ffs, it's not that hard to figure out your system is exactly what I was referring to. The 3700X is an Zen 2 processor with a boost clock of 4.4Ghz, over something like the 1600, which has a boost clock of 3.6Ghz, and is on 14nm.
ZivNio Oct 15 @ 1:03am 
@NinjaGoatX blablablaaaaa .. I have a 3700X and a GTX1060 and normally over 70 FPS. Stop unsettling people with your wisdom. A3 works great with Ryzen. Don't let such freaks fuck with you.
NinjaGoatX Oct 8 @ 10:09am 
@Mattin This is not an ideal game for a Ryzen cpu to begin with, due to it's poor core usage and optimization. Unless you're running a Zen 2 processor with high single-core clocks, you're probably not going to see much of an improvement. I don't know much about the GTX 10-series cards though, but my laptop has a 1060, which is more like a 960 in Desktop performance terms, and I runs about the same numbers as you, so I doubt the GPU is your limiting factor...
Mattin Oct 8 @ 9:51am 
It didnt help me much sadly, GTX1070 with ryzen CPU ( wich I guess is the problem) I been running around 30-40 and now I run 20-40
Kubas  [author] Sep 16 @ 2:32pm 
@Minitialize @KlassicKent Glad it helped you :)