*WARNING* - INCOMING WALL OF TEXT
do you know how much your 'loading' each core ? which leads me to the next question, have you tried messing with CPU threading ? at the beginning of the log file ( Omicron.log - found within C:Users* YOUR USER NAME *Saved GamesMechWarrior OnlineLogs ) the client describes the CPU that it sees, how many threads are available to it etc ...
for example, mine looks like this (trimmed)
essentially you might get a better result from NOT using the hyperthreaded cores ... the intel fanboys will tell you that this game is all about single thread performance, and I accept that that is their interpretation of what they see, but behind the scenes theres much more going on than that, the version of cryengine we have was designed when AMD had a true hex core on the market, as such, the game has design limitations around 6 cores, other than the 'main' thread, there are six supporting threads, and then there are 'job system' threads, where in theory a task can go out to one of these 'alternate' threads if its primary thread is 'busy', there are six addressable threads for the job system, but the default crytek configuration creates 8 instances within the six addresses, and MWO does not change that .... threads given addresses that are higher than the amount of addressable cores, wrap around to the start of the stack again, and this is probably were part of your problem is ....
anyway, if I look at the defaults on my system, they come up looking like this, see if you can spot the weirdness before the next section
sys_main_CPU = 0 sys_TaskThread0_CPU = 3
sys_physics_CPU = 1 sys_TaskThread1_CPU = 5
sys_streaming_CPU = 1 sys_TaskThread2_CPU = 4
e_ParticlesThread = 1 sys_TaskThread3_CPU = 3
ca_thread0Affinity = 5 sys_TaskThread4_CPU = 2
ca_thread1Affinity = 3 sys_TaskThread5_CPU = 1
r_WaterUpdateThread = 5
the main thread is given room to breathe on the 'first' core, which may be intepretted as the last core by windows, because you know, why not be backwards, the next cpu core is pretty much choked out with things, while the one after it is just about left alone, in terms of loading ... if your on a quad core, numbers after 3 get wrapped back around ( arrays start counting at 0 ), so taskthread2 can start impeding the main thread, and taskthread1 gets bonus loaded onto the first core along with the primary 'character animation thread' ....
I suspect this configuration to be optimal for, next to no one ... and 'hurtful' to many .... so, to avoid hyperthreading, you can set the processor affinity, with task manager, get a program similar to ' process lasso ', or just use the affinity control available within a user.cfg file ... I'd recommend the user.cfg file anyway, seeing as you probably want to spread the loads out better across your actual cores anyway, so that the main thread 'stalls' less ....
you might get the impression I'm not a fan of hyperthreading ( SMT on AMD ), and that would not be incorrect ....
Edited by NARC BAIT, 05 June 2018 - 08:47 PM.