Jump to content

Forums Announcement

Read-Only Mode for Announcements & Changelogs

Dear Survivors, we'd like to inform you that this forum will transition to read-only mode. From now on, it will serve exclusively as a platform for official announcements and changelogs.

For all community discussions, debates, and engagement, we encourage you to join us on our social media platforms: Discord, Twitter/X, Facebook.

Thank you for being a valued part of our community. We look forward to connecting with you on our other channels!

Stay safe out there,
Your DayZ Team

Sign in to follow this  
JonathanB

Dev Response About -exThreads

Recommended Posts

I contacted DayZ support out of my sheer curiosity about the -exThreads launch parameter for DayZ.

 

Below is my original message and the response from support (Jan Libich).

 

* QUESTION *

 

I own DayZ StandAlone and I am aware of the various STEAM Launch Parameters available to me for tweaking.
 
I am curious how the parameter -exThreads works, as I dug up some information that explains the basics of how it works, creating threads for Geometry and Texture loading along with File Operations.
 
The problem I have is trying to understand what number this should be set to.
 
The available options are 0,3,5,7 as far as I am aware, however I am confused because I have an Intel Core-i5 4670K which is a 4 Core CPU without HyperThreading, so my CPU has no "Threads" to allocate (at least I think this is how it works with -exThreads?) so I would set -exThreads=0 and -cpuCount=4 right?
 
Am I completely wrong and the amount of CPU "Threads" have nothing to do with the DayZ Engine "Threads"?
 
Can you forward this question to someone who works on the engine-side of DayZ StandAlone?
 
Thanks!
 
* RESPONSE *
 
Hello,

I'm sorry but you are mistaken. Although I'm not an expert when it comes to
DayZ engine I have some years of experience when it comes to PC hardware, so I
will do my best to explain.

A "thread" is an abstract concept. It has nothing to do with actual core count
of your CPU or the fact that your CPU does or does not have hyperthreading.
Basically a thread is a sequence of CPU instructions done in serial way. How
the work actually gets done is completely out of its control. A thread is just
a concept that says that on a particular CPU core, a sequential set of
instructions is currently running.

Now, let's say that you set the amount to 6 threads. Now the game should do its
best to spread across 6 threads - 6 running sets of certain parts of the same
program. How these 6 threads will be processed on your CPU - that depends on
Windows and the CPU itself. That's why -exThreads can boost or tank your
performance. If you have a 4 core CPU with hyper-threading (which is just a
fancy way of saying that one CPU core can process 2 threads simultaneously - in
theory, as long as there are free registers, ALU units and whatnot in the core
itself) then optimally, you can process each thread separately because Windows
sees your CPU as an 8-core CPU. So it should boost your performance.

If you have a 4-core CPU without HT, therefore your CPU can process up to 4
threads at the same time, you might still see performance improvement (or you
might not). There is no way to know beforehand what a certain setting of
exThreads will do with your performance. You have to try it yourself.

Also, it is incorrect that your CPU has "0" threads. It has actually 4 threads
(each core can process 1 thread). It is also not possible to reduce the game to
0 threads. Each program must have at least 1 thread otherwise it cannot exist
in running state.

On the side note, please do not think too much of HyperThreading. I do not want
to bash it in any way but its contribution for higher fps in games is small at
best. The idea of HyperThreading is just that if there are free resources
within a core, the system can assign another thread to it, if possible. As
games tend to tax one or few cores really hard, they barely see any improvement
out of HyperThreading because most cores are already used to the max. It's a
nice-to-have niché functionality but not essential in a gaming rig. It's quite
powerful for professional graphics / video editing, though.
 
I just wanted to share this with everyone here on the forums. I don't know if this will be of interest to anyone, but I figured I may as well share what I was told by the support representative.
  • Like 6

Share this post


Link to post
Share on other sites

Yes, this is very interesting, thanks.

 

My personal experience, with three differet PCs, is that the launch parameters either do nothing, or they hurt performance. Some of them cause more serious problems, including crashes. Because of this, I don't currently run any launch parameters on any of my machines.

 

Certainly some of these parameters may be useful if you have obscure hardware that is mis-identified by the game engine, but I suspect that this is not a very common scenario.

 

One potentially useful launch parameter is the -winxp switch, but it seems to cause crashes on more PCs than it helps. It's still worthwhile to test for compatibility, though, as the potential FPS increase can be substantial.

 

In my opinion, your time is better spent massaging the config file, in the Documents folder.

  • Like 1

Share this post


Link to post
Share on other sites

I often think that too much tweaking can be a waste of time unless you have a serious problem running the game.

 

The game has so much that's constantly being patched and added that the performance of DayZ on each rig can change overnight.

 

Here's to hoping the new renderer helps us all save the frames!

  • Like 3

Share this post


Link to post
Share on other sites

I often think that too much tweaking can be a waste of time unless you have a serious problem running the game.

 

The game has so much that's constantly being patched and added that the performance of DayZ on each rig can change overnight.

 

Here's to hoping the new renderer helps us all save the frames!

One day Eugen is asking us to run -dologs and three days later I'm having CTDs and the Helpdesk says it is due to a known bug and i shouldn't run -dologs.

One day -nosplash and -nopause work just fine, the next day the main menu will not draw.

 

Things are changing too rapidly. Keeping it simple on our side, will minimize the frustration due to compatability issues.

  • Like 1

Share this post


Link to post
Share on other sites
Sign in to follow this  

×