Jump to content
k3lt

Low CPU utilization & Low FPS

Recommended Posts

Nah, it's just the multithreading. If you overclock the performance scales with clockspeed, per-core performance is the most important factor in arma. if streaming were the problem people with a ssd would have great performance compared to those with a normal harddrive, which isn't the case, there's no noticable difference.

Unless they have a limitation in place so the processing threads will never "go faster" than the thread caching can keep up. That would be plausible because it would prevent all kinds of stalling and stuttering from the threads and the thread caching/disk streaming being out of sync.

All so as I have said people have made RAM drives and them things are bloody fast as hell yet no FPS gain.

Dont get me wrong they will make the gameplay smoother and less stutter when loading textures as said by people that used them but no performance gain so to speak just smoother gameplay as ARMA does stream a lot of data

A RAM drive is not the best way to test it because there are so many factors to consider. What if windows creates another pagefile on disk because it knows you have one on a RAM drive? What if BI's memory allocator or thread caching technique causes data to still pass through the disk before even going to the pagefile?

A RAM drive isn't some common thing that everyone runs nor is it something that Windows plays nice with when you try to do wonky things with it. There are just too many unknowns and factor's surrounding it.

Share this post


Link to post
Share on other sites

Oh ffs. If it's streaming that's bottlenecking performance then why does it scale with cpu speed? seriously, what you're saying doesn't make any sense whatsoever.

Share this post


Link to post
Share on other sites
Oh ffs. If it's streaming that's bottlenecking performance then why does it scale with cpu speed? seriously, what you're saying doesn't make any sense whatsoever.

I've never gotten more or better performance running at stock speeds versus the normal overclock I run. It was the same with ArmA 2. 3.4ghz versus 3.9ghz I normally run results in very little performance increase or decrease. I tried stock clocks versus overclocking and never got any scaleable increase.

I think CPU architecture has more to do with it than raw CPU clock speed.

You will probably get a little bit better performance by overclocking, but is going from 30 fps to 32-33 fps really a scaleable increase, especially if you overclock by 500mhz, or a 15% overclock? Are you seeing a 15% performance increase in all situations?

Also if it is a programmed limitation to avoid bottlenecking, it would scale with a clock speed increase to a point where the bottleneck would be reached even with the limitation. That is when usage would go down.

Edited by Insanatrix

Share this post


Link to post
Share on other sites

So, not sure it this might help anyone, but after going through a few of the past updates, I've recognized that the more my CPU is "utilized" (according to Intel's Extreme Tuning Utility), the less my GPU is used (GPU Load according to TechPowerUp's GPU-Z utility) and the less my FPS. I'd currently been using a host of command line parameters:

-malloc=system -maxMem=4096 -maxvmem=4096-nobenchmark -winxp -nosplash -nopause -cpuCount=8 -exthreads=8 -noTexHeaders

As has been said, they don't really do much. But, considering that - unlike when the Alpha was first released (when more CPU utilization meant better FPS) - more CPU utilization now means less FPS and more GPU utilization means more FPS (for me, at least), I decided to change the cpuCount=8 to cpuCount=2. Playing on Takistan, near Nargara, with a platoon-sized element of AI, I saw an increase in FPS from around 11-15FPS to 30-35FPS. Could be placebo effect, could just be my PC, but it helped for me. Saying this because, after the last patch, I've been seeing worse performance.

Share this post


Link to post
Share on other sites

for your CPU, the cpuCount should be 4, and exthreads should be 7

Share this post


Link to post
Share on other sites

Those switch are just placebo.. they doesn't do anything by long time (long time ago, i mean included A2).

Share this post


Link to post
Share on other sites
Those switch are just placebo.. they doesn't do anything by long time (long time ago, i mean included A2).

Set exThreads=0 in Arma2 and then try flying around over Chernarus in a plane, or taking a stroll through Chernogorsk or Elektro. Unless you're running the game from a good SSD, you'll certainly notice the difference. Stuttering in cities due to streaming was a massive problem before exThreads was introduced.

Share this post


Link to post
Share on other sites

Hi,

We can try to remove all doubt ..... maybe!?!

cpuCount

-cpuCount= is option which allows define number of CPUs/cores available.

The best way to simulate dual core on quad core is to use -cpuCount=2 when you run the game and then change the affinity to 2 cores to make sure additional cores can never be used when some over-scheduling happens. It might be also possible to set the affinity in the OS before you launch the process, that would work as well.

exThreads

-exThreads= is option to define extra threads.

All file operations go through a dedicated thread. This offloads some processing from the main thread, however it adds some overhead at the same time. The reason why threaded file ops were implemented was to serve as a basement for other threads ops. When multiple threads are running at the same time, OS is scheduling them on different cores. Geometry and Texture loading (both done by the same thread) are scheduled on different cores outside the main rendering loop at the same time with the main rendering loop.

( Bistudio\Wiki\Arma2 ...Docet )

Share this post


Link to post
Share on other sites
Set exThreads=0 in Arma2 and then try flying around over Chernarus in a plane, or taking a stroll through Chernogorsk or Elektro. Unless you're running the game from a good SSD, you'll certainly notice the difference. Stuttering in cities due to streaming was a massive problem before exThreads was introduced.

In fact you're not supposed to "force" anything, you shouldn't use those switch at all if not for very specific usage (like running multiple clients/servers on a shared machine, etc.), when i said they doesn't do anything i'm referring to ppl forcing maxmem to 4096, maxvmem, cpucount to 4, maxthreads to 7.. etc. the do absolutely nothing.

Share this post


Link to post
Share on other sites
In fact you're not supposed to "force" anything, you shouldn't use those switch at all if not for very specific usage (like running multiple clients/servers on a shared machine, etc.), when i said they doesn't do anything i'm referring to ppl forcing maxmem to 4096, maxvmem, cpucount to 4, maxthreads to 7.. etc. the do absolutely nothing.

Okay, I misunderstood your meaning. You are correct, setting these values manually is generally not necessary since the game autodetects the appropriate values.

Share this post


Link to post
Share on other sites
for your CPU, the cpuCount should be 4, and exthreads should be 7

I know. It should be and I'm pretty sure it does by default. Now, will having it set higher than what it should be (so at 8 instead of 4) make it run worse or will it default to 4?

Anyway, as I said, I'm not sure if it's just a placebo effect, but I did see improvement by setting it lower to 2. And the only reason I did was because, for my system, when CPU Utilization is high, GPU Load and FPS are low. When GPU Load/utilization/whatever-it-is is at 99%, then my FPS is pretty stable, and by that I mean a pretty consistent 30FPS in MP for Domination mode and with a large group of AI+vegetation in the Editor. It's like around 50FPS when there's just open terrain with little vegetation or trees.

Also, since the 0.55 dev build, I've seen a quicker FPS/lag spike time. Here's what I mean. Usually, during SP or MP, after around 15 minutes of runtime, CPU usage will spike and I'll see a decrease in FPS and GPU Load. It'll drop from 30FPS to sub-20FPS and from 99% GPU load to anywhere from 98% to 25% GPU load. After this latest build, that happens a lot quicker, like around 8 to 10 minutes into gameplay. Has anyone else experienced this? Because right now, this is the only time where the game runs poorly for me. Oh, and once FPS drops, it doesn't recover. I'm not sure if it's a GPU issue (not holding at 99% usage) or a game issue, but this problem wasn't as noticeable before the latest build. And, before this build, my FPS would almost always recover after about 10 to 20 minutes.

Share this post


Link to post
Share on other sites
terrible scaling as evidenced by the lack of measurable results from resolution changes, etc.
This points to what me and Insanitrix have been saying: AI routines are stalling DX output from the simulation on the CPU, and heavy streaming latency is stalling the GPU on the other end of the pipeline (perhaps also for the CPU).
The fact that ArmA 3 uses my hex core as a triple core (if that's true) just goes to show you that something isn't right
He explained that in effect your 6-core only has 3-core architecture with 6 processing units basically, and it's being bottlenecked because of it. He did a fairly good job of it imo, so you shouldn't just toss it out as "technical mumbo-jumbo". Here's the Tom's article on Bulldozer: LINK

From that:

"The decision to share only bites you in the butt when both threads need the same resources, at which point performance drops relative to chip-level multiprocessing. But AMD is optimistic: last August, when it started releasing architectural details at the Hot Chips conference, it estimated that a Bulldozer module could average 80% of two complete cores...."

That's the company's statement on it. Your CPU is using a Piledriver architecture, which is basically a cleaned-up Bulldozer - the same issues will apply, just less so. It does well with heavily multithreaded tasks, but if there's a single thread that could hold things up, this architecture will feel it a good bit more than an Intel one, especially if it revolves around memory bandwidth or cache latency, which in a game with so much streaming and data going in and out is likely to be a big issue. Sorry for being technical about a technical problem. Other games don't suffer CPU bottlenecks like Arma does, for whatever reasons, so it's reasonable that your architecture wouldn't cause significant issues with them. Generally, CPUs are not as important for FPS games; this is one of the exceptions.

I'd be curious if some other folks can try this and report their findings.

Makes me wonder if this issue might have something to do with how they are processing the ai, and that is somehow causing low hardware utilization. But, that is out of my area.

I have - #1116, AI pathfinding is a huge issue.
My best guess is that as you lower view distance, there's less data needing to be simultaneously streamed or cached. Texture's, LOD's, Object data and related configuration data etc...

It still enforces my belief that it's an issue with the disk streaming causing a bottleneck on all threads. It's the only constant I can put my finger on that would cause a decrease in usage as demand goes up. The entities in the mission and how large their texture's and associated data are can wildly influence the performance based on size rather than rendering quality or demand or in the case of AI their processing demand. I just don't see it being a cause of the AI because disabling all AI processing for placed entities impacts FPS by such a small margin.

It can be more than one thing... AI pathfinding clearly is a huge issue. So is data streaming for highly complex scenes. You can have issues without AI, but AI will make it worse regardless. Otherwise, we agree
Oh ffs. If it's streaming that's bottlenecking performance then why does it scale with cpu speed? seriously, what you're saying doesn't make any sense whatsoever.
For models/textures or for AI missions? For the latter, it could obviously be thread holdups that get cleared faster by faster clock cycles; the former would be a bit more difficult to explain by CPU speeds.

Share this post


Link to post
Share on other sites
This points to what me and Insanitrix have been saying: AI routines are stalling DX output from the simulation on the CPU, and heavy streaming latency is stalling the GPU on the other end of the pipeline (perhaps also for the CPU).

He explained that in effect your 6-core only has 3-core architecture with 6 processing units basically, and it's being bottlenecked because of it. He did a fairly good job of it imo, so you shouldn't just toss it out as "technical mumbo-jumbo". Here's the Tom's article on Bulldozer: LINK

From that:

"The decision to share only bites you in the butt when both threads need the same resources, at which point performance drops relative to chip-level multiprocessing. But AMD is optimistic: last August, when it started releasing architectural details at the Hot Chips conference, it estimated that a Bulldozer module could average 80% of two complete cores...."

That's the company's statement on it. Your CPU is using a Piledriver architecture, which is basically a cleaned-up Bulldozer - the same issues will apply, just less so. It does well with heavily multithreaded tasks, but if there's a single thread that could hold things up, this architecture will feel it a good bit more than an Intel one, especially if it revolves around memory bandwidth or cache latency, which in a game with so much streaming and data going in and out is likely to be a big issue. Sorry for being technical about a technical problem. Other games don't suffer CPU bottlenecks like Arma does, for whatever reasons, so it's reasonable that your architecture wouldn't cause significant issues with them. Generally, CPUs are not as important for FPS games; this is one of the exceptions.

I have - #1116, AI pathfinding is a huge issue.

It can be more than one thing... AI pathfinding clearly is a huge issue. So is data streaming for highly complex scenes. You can have issues without AI, but AI will make it worse regardless. Otherwise, we agree

For models/textures or for AI missions? For the latter, it could obviously be thread holdups that get cleared faster by faster clock cycles; the former would be a bit more difficult to explain by CPU speeds.

AI will affect it, I just don't think it's because the AI routines are too task heavy for a modern multi-core CPU. Certainly the AI routines and processing will have an affect on performance, I just meant that under the current engine you see more of a performance hit/benefit from changing your view distance 500m, thereby increasing/decreasing streaming demand, than you would by disabling the AI on 25-50 AI soldiers, thereby increasing/decreasing processing demand. I agree with you basically, just the way we describe it is different.

Also that really only holds true to a point whereby you create a processing bottleneck by placing so many AI soldiers that it becomes more of a bottleneck than the streaming.

Share this post


Link to post
Share on other sites

so whats the verdict so far in terms of parameter use

for me

iv tried -cpucount=4 using i7 3770k

noticed it feels less laggy when im in the forest (20 fps vs 15), all that vegetation still kills my fps

running an old 8800 gt she still got some fire under the hood i tell you what

anywhere else on the map (25-40 fps) putting forests aside,

things run pretty damn snappy

ohhh yea shes still making babies over there know what im saying HUah

Share this post


Link to post
Share on other sites
so whats the verdict so far in terms of parameter use

Placebo effect at best. I hope you enjoyed your sugar pill :p

Share this post


Link to post
Share on other sites

We must be realistic, the launcher parameters are absolutely useless. The only fix for this issues will come from BI.

Share this post


Link to post
Share on other sites

at the start, the game uses all cores but stops using them when you reach main menu. it sucks

Share this post


Link to post
Share on other sites

as arma3 detects 3770k as 4 core processor by default it´s indeed just placebo. back in arma 2 days cpucount=4 was a blast performance wise with i7 cpus. arma2 was handling i7s like 8core processors, which causes heavy lag due to cores waiting for ht-cores never getting done their work^^.

a thing i7 cpu user could try is cpucount=12 and thread parking disabled, in theory this could boost performance as all 8 frontends should be used properly then.

well, history now.

Share this post


Link to post
Share on other sites

idk BI a post with 122 pages its no enough to make optimization your main priority? i mean make your game playable and then you focus in adding things and bugs iam just tired of not being able to play the game in some decent framerate

Share this post


Link to post
Share on other sites
idk BI a post with 122 pages its no enough to make optimization your main priority? i mean make your game playable and then you focus in adding things and bugs iam just tired of not being able to play the game in some decent framerate

this. the issue also has the most votes on the issue tracker. hello bis??

Share this post


Link to post
Share on other sites

It takes more than 1 month to solve this issue?

Impossible. All things can be solved in 3 days if enough people complain about it.

Share this post


Link to post
Share on other sites

We all know this issue persists for a lot longer than 1 month.

Share this post


Link to post
Share on other sites
It takes more than 1 month to solve this issue?

Impossible. All things can be solved in 3 days if enough people complain about it.

how about since lets say, 2009 (reasonable enough since quad cores were already popular by then) when performance complains about this started and kept being rejected. that would be a more accurate timeframe.

Edited by white

Share this post


Link to post
Share on other sites

edit: woke up on the wrong side of the bed

it would be nice to get an update on matters from BI

Edited by daze23

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×