Jump to content

My Arma 3 Tweaks


JJ Cakes

Recommended Posts

I don't know if this will help anybody, but I can't really run the AWE modset unless I dedicate 1/2 my 8GB RAM to Arma using the following startup option:

 

-maxmem=4095

 

I know it's really reserving the full 4GB because if I accidentally start Arma twice, the second instance complains about inability to allocate memory and exits.  4GB is what 32-bit Arma can address without paging, so I don't know if going higher helps or if Arma even supports it.  If I don't do this, the AWE modset causes Arma to just be really unresponsive, even when I'm not connected to a server and just on the main menu page.

 

Other command-line options I use are:

 

-nologs -nosplash -world=empty

 

The first gets rid of some useless HDD/SSD writes, the other 2 speed up booting a bit.

 

The other thing I do, and I think it helps a bit is I raise the priority of the Arma process using the wmic utility.  I put the following in a file called armawmic.bat on my desktop:

 

wmic process where name="arma3.exe" CALL setpriority "128"

 

What that does is set the CPU scheduling priority of Arma to the highest you can get without preempting system processes which would just cause crashes.  Here's a link about the priority:  https://msdn.microsoft.com/en-us/library/aa393587(v=vs.85).aspx

 

So I fire up Arma from ArmA3Sync, and as soon as I see Arma is starting to load, I double-click the armawmic.bat file to raise the priority.  You have to wait until Arma is running before you run the .bat, you need arma3.exe to actually be running before the priority can be increased.  If I'm running Arma for the vanilla servers I have a .bat that starts Arma, pauses for 15 seconds and then runs wmic.  You can see how to do that here: https://7cav.us/threads/arma-3-performance-tweaks-often-overlooked.11378/ 

 

But change this:

 

5. this time add arma3.exe to the end of this but inside the quote

  • should read: /I "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3.exe"

 

To this:

 

5. this time add arma3battleye.exe to the end of this but inside the quote

  • should read: /I "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3battleye.exe"

 

Otherwise Battleye doesn't start, you can't join AW servers which is sorta the point.  Note: You still use arma3.exe for wmic.

 

I also have some lines in my .bat files that lowers the priority of other processes.  Basically anything Steam is trying to do in the background.  I set those to "Below Normal" (16384).  You can use the task manager to see if anything non-essential is chattering away and lower its priority.

 

If anyone wants me to post up the guts of those startup files, I'd be happy to do so when I'm on my home machine.

 

The wmic utility isn't a magic bullet, but it does seem to smooth out FPS.

 

This is overly verbose, the tl;dr; for wmic is: create that armawmic.bat file.  Start Arma however pleases you, double-click the .bat as soon as you see Arma starting to load up.

 

If anyone has any other tweaks that have helped out Arma performance, I'd love to hear them!

 

Edited by JJ Cakes
Fixed battleye exe name
Link to comment
Share on other sites

Here's the contents for arma3.bat, that's to launch Arma w/ no mods:

 

Spoiler

start "Arma3" /D "C:\Program Files (x86)\Steam\steamapps\common\Arma 3" /I "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3battleye.exe" -nologs -maxMem=4095 -noPause -noSplash -world=empty

timeout /t 15

wmic process where name="arma3.exe" CALL setpriority "128"
wmic process where name="Steam.exe" CALL setpriority "16384"
wmic process where name="SteamService.exe" CALL setpriority "16384"
wmic process where name="steamwebhelper.exe" CALL setpriority "16384"

 

 

Here's the contents for arma3mod.bat which launches Arma with the modset from the AW public repository:

 

Spoiler

start "Arma3" /D "C:\Program Files (x86)\Steam\steamapps\common\Arma 3" /I "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3battleye.exe" -nologs -maxMem=4095 -noPause -noSplash -world=empty -mod=@CBA_A3;@ShackTac_User_Interface;@JSRS4APEX;@outlw_magrepack;@tao_foldmap_a3;

timeout /t 15

wmic process where name="arma3.exe" CALL setpriority "128"
wmic process where name="Steam.exe" CALL setpriority "16384"
wmic process where name="SteamService.exe" CALL setpriority "16384"
wmic process where name="steamwebhelper.exe" CALL setpriority "16384"

 

 

You can see where I'm lowering the priority of the Steam apps in those .bat files.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Forum Statistics

    11.1k
    Total Topics
    66.4k
    Total Posts
×
×
  • Create New...