Arma 3
Standi Aug 17, 2021 @ 12:12pm
How I tweaked my pc and launch parameters to get MAJOR PERFORMANCE GAINS out of multithreading!!!
As some of us know the game engine in Arma 3 is bad at multithreading. they changed it a little but still can only render the game on 3 threads. For us 16 thread guys The game can only use a total of 19% CPU usage for rendering that turns into a major bottleneck. For at least a year I have fully given up on trying to make my CPU. I had the same FPS as my old Phenom x4 quad core pc that didnt hyperthread. I was sad after building my new 16 core pc to find out it still wont run arma on a server past 30fps. UNTIL TODAY BABY!!!!!!!!!!!!!!
To test it I cranked up all my view distances to 12000, video settings on ultra and loaded a scenario with a decent amout of active AI. I was averaging 75 fps while flying in a heli.
yesterday I was getting 40fps with 2000 viewdistance and most settings on med or below!

This is my first guide but I have to share the info I got today.-------------------------------

First thing you need to make sure that arma 3 is set to high performance mode in the windows power settings located in the control panel AND your GPU control panel. In windows 10 that unparks all your cores so they can be used for hypertheading. IF YOU HAVE WINDOWS 7 you need to download a program called UnparkCPU it unlocks your other cores so arma can use them. This is a start but if you have been researching this for a while you know this, skip to the bottom for the info bombshell.

Next you enter your GPU control panel and change a few things. Disable any settings that use G-Sync or V-sync. This always uses power and you will never achieve you monitors refresh rate unless its old and rusty, or like your game to look like minecraft. In Nvidia control panel it is in the "Manage 3D Settings" tab. Make sure Triple buffering is enabled, threaded optimization is enabled, pre rendered frames should be at 1, VSync is disabled and power management mode is set to high performance. Set the rest of the settings to "application controlled" or "let the 3D application decide"

I just discovered that you can make applications choose what threads to use to split up processes. most of your CPU demanding programs that run in the background only run on your first 4 cores. That robs arma as it chooses to use the first 4 as well as, my steam constantly uses a total of 13% cpu usage. {VALVE FIX THIS SHT lol}
Omost all programs will mostly use the first 8 threads on a 8 core and ignore the other 8 threads. so I made my arma use only cores 9-16 by changing some settings. start by opening task manager. and find arma3x64.exe in in the details tab. If you cant find it right click arma3 in the processes tab and select go to details, it highlights it in the details tab for you. right click arma in the details tab and select "Set Affinity" it pulls up checkboxes that let you choose what cores that program can choose. Here is a guide to assigning programs to certain cores. https://www.windowscentral.com/assign-specific-processor-cores-apps-windows-10 With a 16 hyperthread CPU select only cores 8-15. (first core starts at 0). Then find the first few programs that are idle CPU hogs. For me its all the steam.exe processes my GPU Program and Corsair software use 15% together in the background. find those programs and set the affinity to only use cores 0-7. Anything that idles at 1% or higher I set to use 0-7 cores. This frees up anything on cores 8-15 and switches arma to only use those cores.

Now you have to add some startup parameters to arma 3 launcher to make this work.
In the launcher, select the parameters tab then all parameters. check the box next to command line and type your startup parameters. An example of what I use
-maxMem=8192 -cpuCount=8 -maxVRAM=7168 -noSplash -world=empty -exThreads=7 -noLogs -filePatching

maxMem- the ram allocation, increments of 1024 per GB to a maximum of 8192

cpuCount- how many cores you have

MaxVram- your max GPU ram allocation. increments of 1024 per GB.

nosplash- makes the game launch faster skips intro screen.

World=Empty- makes the game launch faster, makes the main menu static.

exThreads- for thread splitting, if your using 8 threads to run the game set it to 7 if yor using only 4 threads to run the game set it to 3.

noLogs- prevents stuttering due to debug logs being recorded, unless you want to send bohemia crash reports.

filepatching- somthing I use for my mods.

Dont use enableHT-, its supposed to autodetect what cores to use and use them. but for me it only still uses 4 threads.

also in the parameters tab check the Memory allocator box and next to that select windows allocator if you have a AMD CPU otherwise use Intel TBB4 allocator if you have a Intel CPU. check the "Enabled large-page support" checkbox, this is more useful for A intel CPU.

Heres a link that explains all the parameters https://community.bistudio.com/wiki/Arma_3:_Startup_Parameters

A combination of all of this I can get Arma to run on 8 cores that are not being used by anything else. Now I can get my GPU up to omost 70% usage before a few threads get maxed and starts bottlenecking again. At this point a having the game on a SSD makes a huge fps difference too.
Use task manager to make sure cores 8-15 are not being used. Then check them after launching into a game and if their are all now working you did it!!! there will be 3 that use a lot more than the rest. nothing can be done but arma 4 having a different game engine.

if your GPU still not getting to 95% you cpu is still bottlenected by the processor.
It can help to overclock your CPU and RAM, it helps.

my 1070TI gets to not even 50% gpu Usage befoer the CPU bottleneck heavily on 3 threads.

x570 board
3800x ryzen
1070ti strix

anything I was wrong about, questions, or suggestions helps others a lot. feel free to talk.
< >
Showing 1-10 of 10 comments
BoogieMan Jan 13, 2022 @ 5:05pm 
The launcher says max memory is 32686?
Waltzz Feb 6, 2022 @ 11:59pm 
can you help me with i7 7700hq , my english is not well :(
Willy Stroker May 9, 2022 @ 3:38pm 
I have 20 cores at 3.7ghz and it's only using 9% but lags like hell
Bob Sep 6, 2022 @ 10:29am 
core affinity . interesting theory
pvt TOAST Nov 21, 2022 @ 5:02pm 
@OP, so I have tried this. Currently I have a mild overclock where I am locked into turbo boost mode (i am building a new system so I don't care if she pops). No matter what I do, I cannot get arma to utilize more than 30% of my cpu. I play on some custom settings and mods and get a very stable fps with some very high ultra settings and view distances. My question is:

I know I can get 60fps from arma if I can some how tell it to use 90% of my machine. How do I make it do so?

I repeat, arma simply will not use more than 30% of my machine and I have exhaustively tuned both arma and my pc. I have a modest pc with NOTHING to do other than run arma and it barely cranks 20fps in heavy action, while only using a max of 30% of hardware.

2600K, B75 chipset, GTX 980, 16GB DDR 1333.
Man why do people always gets fooled by these so called performance tweak and so on, BI already said that changing anything on the launcher parameter specially on core count will either make the game worse or better. The game can run fine on single player but on multiplayer expect the performance to be lower.

And one thing the game engine is old and poorly optimized so those performance tweaks will barely make any huge difference.
Bailing_Out Jul 16, 2023 @ 8:56pm 
Tried some of this this, I cannot find arma in the power settings so I did not do that. I did make some changed in the adrenaline settings, upped it some.

I have to change the cores in the task manager every time I start the game. Its not hard but their is no way I know of to save that. I also decided to set priority to above normal which seems to help.

In another game I once set that to real time but that caused some problems LOL.

It helped some
Son of Darkness Jul 3, 2024 @ 9:35am 
Originally posted by Standi:
As some of us know the game engine in Arma 3 is bad at multithreading. they changed it a little but still can only render the game on 3 threads. For us 16 thread guys The game can only use a total of 19% CPU usage for rendering that turns into a major bottleneck. For at least a year I have fully given up on trying to make my CPU. I had the same FPS as my old Phenom x4 quad core pc that didnt hyperthread. I was sad after building my new 16 core pc to find out it still wont run arma on a server past 30fps. UNTIL TODAY BABY!!!!!!!!!!!!!!
To test it I cranked up all my view distances to 12000, video settings on ultra and loaded a scenario with a decent amout of active AI. I was averaging 75 fps while flying in a heli.
yesterday I was getting 40fps with 2000 viewdistance and most settings on med or below!

This is my first guide but I have to share the info I got today.-------------------------------

First thing you need to make sure that arma 3 is set to high performance mode in the windows power settings located in the control panel AND your GPU control panel. In windows 10 that unparks all your cores so they can be used for hypertheading. IF YOU HAVE WINDOWS 7 you need to download a program called UnparkCPU it unlocks your other cores so arma can use them. This is a start but if you have been researching this for a while you know this, skip to the bottom for the info bombshell.

Next you enter your GPU control panel and change a few things. Disable any settings that use G-Sync or V-sync. This always uses power and you will never achieve you monitors refresh rate unless its old and rusty, or like your game to look like minecraft. In Nvidia control panel it is in the "Manage 3D Settings" tab. Make sure Triple buffering is enabled, threaded optimization is enabled, pre rendered frames should be at 1, VSync is disabled and power management mode is set to high performance. Set the rest of the settings to "application controlled" or "let the 3D application decide"

I just discovered that you can make applications choose what threads to use to split up processes. most of your CPU demanding programs that run in the background only run on your first 4 cores. That robs arma as it chooses to use the first 4 as well as, my steam constantly uses a total of 13% cpu usage. {VALVE FIX THIS SHT lol}
Omost all programs will mostly use the first 8 threads on a 8 core and ignore the other 8 threads. so I made my arma use only cores 9-16 by changing some settings. start by opening task manager. and find arma3x64.exe in in the details tab. If you cant find it right click arma3 in the processes tab and select go to details, it highlights it in the details tab for you. right click arma in the details tab and select "Set Affinity" it pulls up checkboxes that let you choose what cores that program can choose. Here is a guide to assigning programs to certain cores. https://www.windowscentral.com/assign-specific-processor-cores-apps-windows-10 With a 16 hyperthread CPU select only cores 8-15. (first core starts at 0). Then find the first few programs that are idle CPU hogs. For me its all the steam.exe processes my GPU Program and Corsair software use 15% together in the background. find those programs and set the affinity to only use cores 0-7. Anything that idles at 1% or higher I set to use 0-7 cores. This frees up anything on cores 8-15 and switches arma to only use those cores.

Now you have to add some startup parameters to arma 3 launcher to make this work.
In the launcher, select the parameters tab then all parameters. check the box next to command line and type your startup parameters. An example of what I use
-maxMem=8192 -cpuCount=8 -maxVRAM=7168 -noSplash -world=empty -exThreads=7 -noLogs -filePatching

maxMem- the ram allocation, increments of 1024 per GB to a maximum of 8192

cpuCount- how many cores you have

MaxVram- your max GPU ram allocation. increments of 1024 per GB.

nosplash- makes the game launch faster skips intro screen.

World=Empty- makes the game launch faster, makes the main menu static.

exThreads- for thread splitting, if your using 8 threads to run the game set it to 7 if yor using only 4 threads to run the game set it to 3.

noLogs- prevents stuttering due to debug logs being recorded, unless you want to send bohemia crash reports.

filepatching- somthing I use for my mods.

Dont use enableHT-, its supposed to autodetect what cores to use and use them. but for me it only still uses 4 threads.

also in the parameters tab check the Memory allocator box and next to that select windows allocator if you have a AMD CPU otherwise use Intel TBB4 allocator if you have a Intel CPU. check the "Enabled large-page support" checkbox, this is more useful for A intel CPU.

Heres a link that explains all the parameters https://community.bistudio.com/wiki/Arma_3:_Startup_Parameters

A combination of all of this I can get Arma to run on 8 cores that are not being used by anything else. Now I can get my GPU up to omost 70% usage before a few threads get maxed and starts bottlenecking again. At this point a having the game on a SSD makes a huge fps difference too.
Use task manager to make sure cores 8-15 are not being used. Then check them after launching into a game and if their are all now working you did it!!! there will be 3 that use a lot more than the rest. nothing can be done but arma 4 having a different game engine.

if your GPU still not getting to 95% you cpu is still bottlenected by the processor.
It can help to overclock your CPU and RAM, it helps.

my 1070TI gets to not even 50% gpu Usage befoer the CPU bottleneck heavily on 3 threads.

x570 board
3800x ryzen
1070ti strix

anything I was wrong about, questions, or suggestions helps others a lot. feel free to talk.
That sounds super smart
Peaceul Jul 17, 2024 @ 7:50am 
Dont make me reinstall game 20 time believing that "THIS TIME IT WILL RUN DECENT WITH THESE SWEET TWEAKS" :steamsad:

I wish they could make patch to improve the performance on modern PCs....
Last edited by Peaceul; Jul 17, 2024 @ 7:50am
RunForRest Aug 7, 2024 @ 11:31am 
So every time u start the game u have to rearrange all the cores? Nah not happening
Theres much easier way, buy this and double ur fps:
https://store.steampowered.com/app/993090/Lossless_Scaling/
Works for me like a charm
see my post #8:
https://steamcommunity.com/app/107410/discussions/0/4521136185565109712/?tscn=1722664786
Last edited by RunForRest; Aug 7, 2024 @ 11:34am
< >
Showing 1-10 of 10 comments
Per page: 1530 50