Question / Help High cpu usage on Windows 10

hypnotoad

New Member
https://obsproject.com/forum/threads/obs-windows-10-support-information.33797/page-2#post-156634
I have a serious problem with obs performance on windows 10. On windows 7 obs uses roughly about 20% of CPU (streaming 720p/3000K bitrate/veryfast preset on a 2500K cpu), but on windows 10 cpu usage got 2x higher and now about 40-50%. All settings and everything are the same, of course. Tried obs-studio, no difference. What might be the problem?
Nothing has changed except OS.
I think there's some problems in screen capturing on windows 10, because when i remove the screen (window or game capture) CPU usage of obs drops to normal ~20%. No matter what i capture, game, or video player.
Here's last logfile: https://gist.github.com/f6832a30dc3b4b44f9fc
 
Last edited:

dping

Active Member
I have said in the past, that 720@60 is borderline for an i5 especially an older gen i5, but none the less, do you have a logfile from your windows 7 days with the same setup?


Code:
Audio Format: 44100 Hz

Check to make sure your audio device in windows is still set to this format. I noticed after upgrade one of my onboard sound devices was "upgraded" to default to 48000Hz audio format.

Set OBS to whatever windows it set to for your speakers/headset. otherwise OBS will be reencoding the sound as well.

Code:
WARNING: Another hook is already present while trying to hook dxgi.dll, hook
target is \Device\HarddiskVolume4\Program Files (x86)\FRAPS\fraps32.dll.
If you experience crashes, try disabling the other hooking application

I would disable fraps hook (overlay) for now since this could be causing a conflict with OBS. Then again, it might be fine, just something I noticed.

Other than that, everything looks fine. you are still getting less than 1% duplicate frames.
 

hypnotoad

New Member
I have said in the past, that 720@60 is borderline for an i5 especially an older gen i5
I have zero problems streaming games in 720@60p on this CPU. As i said, only OS has changed and in windows 7 i had 20-30% cpu usage. Now its' 40-50%. Same obs, same settings, same games, EVERYTHING is the same, except OS.
And nothing is wrong with my audio device either, it's set to 44.1KHz. Fraps doesn't affect performance in any way, it was running only to show frame counter. Nothing changes without it.
I actually have a full backup of my old windows 7, so i restored it to another disk and checked everything again. And as i said already, on windows 7 obs uses 20-30% of CPU in the same conditions.
Here's a couple of screenshots:
qlfrbfK.png

Qt8IvYP.png

And now same everything, but on 10:
hhvpPX3.png

M3GpLQZ.png

I played a movie, capturing it with obs and streaming to make these screenshots.
And here's log from Windows 7: https://gist.github.com/79cc5a84974f1d759c79
 
Last edited:

dping

Active Member
I have zero problems streaming games in 720@60p on this CPU. As i said, only OS has changed and in windows 7 i had 20-30% cpu usage. Now its' 40-50%. Same obs, same settings, same games, EVERYTHING is the same, except OS.
And nothing is wrong with my audio device either, it's set to 44.1KHz. Fraps doesn't affect performance in any way, it was running only to show frame counter. Nothing changes without it.
I actually have a full backup of my old windows 7, so i restored it to another disk and checked everything again. And as i said already, on windows 7 obs uses 20-30% of CPU in the same conditions.
Here's a couple of screenshots:
qlfrbfK.png

Qt8IvYP.png

And now same everything, but on 10:
hhvpPX3.png

M3GpLQZ.png

I played a movie, capturing it with obs and streaming to make these screenshots.
And here's log from Windows 7: https://gist.github.com/79cc5a84974f1d759c79
The OS is a big change especially from 7 to 10. That being said there are things that might need to change, optimized etc.

From what I see comparing the new log files,

Windows 7:

Code:
04:12:35: Total frames encoded: 2455, total frames duplicated: 27 (1.10%)
04:12:35: Total frames rendered: 2477, number of late frames: 1 (0.04%)

04:12:35: video thread frame - [100%] [avg time: 2.971 ms] [children: 86.6%] [unaccounted: 13.4%]
04:12:35: | scene->Preprocess - [79.8%] [avg time: 2.372 ms]
04:12:35: | GPU download and conversion - [6.8%] [avg time: 0.202 ms] [children: 6.56%] [unaccounted: 0.236%]
04:12:35: | | flush - [6.26%] [avg time: 0.186 ms]
04:12:35: | | CopyResource - [0.135%] [avg time: 0.004 ms]
04:12:35: | | conversion to 4:2:0 - [0.168%] [avg time: 0.005 ms]
04:12:35: Convert444Threads - [100%] [avg time: 0.425 ms] [children: 98.6%] [unaccounted: 1.41%]
04:12:35: | Convert444toNV12 - [98.6%] [avg time: 0.419 ms]
04:12:35: encoder thread frame - [100%] [avg time: 0.777 ms] [children: 0.901%] [unaccounted: 99.1%]
04:12:35: | sending stuff out - [0.901%] [avg time: 0.007 ms]

Wiondows 10
Code:
23:41:49: Total frames encoded: 2478, total frames duplicated: 3 (0.12%)
23:41:49: Total frames rendered: 2501, number of late frames: 0 (0.00%)

23:41:49: video thread frame - [100%] [avg time: 1.093 ms] [children: 59.3%] [unaccounted: 40.7%]
23:41:49: | scene->Preprocess - [43.2%] [avg time: 0.472 ms]
23:41:49: | GPU download and conversion - [16.1%] [avg time: 0.176 ms] [children: 15.3%] [unaccounted: 0.823%]
23:41:49: | | flush - [14.5%] [avg time: 0.159 ms]
23:41:49: | | CopyResource - [0.457%] [avg time: 0.005 ms]
23:41:49: | | conversion to 4:2:0 - [0.274%] [avg time: 0.003 ms]
23:41:49: Convert444Threads - [100%] [avg time: 0.61 ms] [children: 98.7%] [unaccounted: 1.31%]
23:41:49: | Convert444toNV12 - [98.7%] [avg time: 0.602 ms]
23:41:49: encoder thread frame - [100%] [avg time: 0.903 ms] [children: 0.332%] [unaccounted: 99.7%]
23:41:49: | sending stuff out - [0.332%] [avg time: 0.003 ms]

From what I see, it was duplicating less and no late frames windows 10, incidentally the encoder thread frame was slightly higher still well within tollerance..
With windows 7, you had almost 1% dropped frames (which you want to keep as low as possible targeting well below 1% and a few late frames but encoder thread frame was lower.


Sadly this analysis is inconclusive since I dont believe you were recording the same scene for the exact same frame count. but it doesn't matter because both are within tollerance (even though the windows 7 log showed higher duplicate frames.


Is there a chance there you had done some stuff with disabling core parking in windows 7 that hasn't been done yet in 10?

Also another major change would be the GPU drivers. this isn't something that you can do anything about but could change the video thread frames slightly.



Lastly, on my system I have seen the exact same CPU usage from OBS on Windows 8.1 as I did on 10, which from what I've seen from the past year is about right.

your windows 10 CPU usage is right where it should be for an i5. so I cannot explain why or know why you would have lower usage on 7 unless:

your CPUs were parking or thermal throttling.
 

hypnotoad

New Member
There is a chance there you had done some stuff with disabling core parking in windows 7 that hasn't been done yet in 10?
No, i didn't do anything like that. No throttlling, no parking, CPU works exactly as it should on Windows 7. I have zero problems, no BSODs, no performance issues etc. If my CPU were parking or thermal throttling, i would see it momentarily.
Well, i don't think that changing video driver should double my CPU usage by any means. Maybe there's something wrong with current Nvidia Windows 10 drivers, or with Windows itself i don't know, but it's certainly unacceptable. I shouldn't get this kind of performance drops while performing the same tasks. ~2x isn't slightly, i would say. It's a huge difference.
 
Last edited:

dping

Active Member
No, i didn't do anything like that. No throttlling, no parking, CPU works exactly as it should on Windows 7. I have zero problems, no BSODs, no performance issues etc. If my cpu were parking on on thermal throttling, i would see it.
you should be happy that your windows 10 build is dropping almost no frames with 7 at 1% would have looked stuttery at times.

Anyway, I can see I cannot convince you that 40% is about what you should see so I did a test:

I set my hexcore CPU to 3.3GHz disabled hyperthreading and told OBS to only use 4 cores and set OBS to 720@60fps veryfast preset,
I restreamed someone streaming dayz via preview window and I came up with about 40% CPU usage on the dot.

now that might not mean much to you since you had less CPU on 7 so maybe you need to go back to 7 until you get a CPU upgrade. I honestly have a hard time believing you were getting 20%CPU usage without some sacrifices or almost no movement going on, so I dont know what else to tell you.
 

hypnotoad

New Member
It wasn't strictly 20, it was 20 to 30. But on Windows 10 it's 40 to 50. And my CPU is overclocked to 4GHz.
I don't care about dropped frames, no one ever complained, performance is more important. And i can't see why i should upgrade if my system performs well enough in every task. Something is clearly wrong here, and it has nothing to do with my system.
Here's another example for you, if you don't believe me:
pxvqXgO.png

Restreaming random stream from twitch. You can clearly see ~30 CPU usage. And i'm not trying to fool you with this numbers by screencapping lowest/highest ones, they're average.
But when i try to capture game/movie (doesn't matter what i use, game or window capture) i get this:
SKplHrf.png
 
Last edited:

Cryonic

Member
I noticed the same problem, for me it was just the preset that i had to tune back. I was able to stream with faster @1080p 60fps, right now i have to use veryfast to have some spare CPU-power.
 

dping

Active Member
It wasn't strictly 20, it was 20 to 30. But on Windows 10 it's 40 to 50. And my CPU is overclocked to 4GHz.
I don't care about dropped frames, no one ever complained, performance is more important. And i can't see why i should upgrade if my system performs well enough in every task. Something is clearly wrong here, and it has nothing to do with my system.
Here's another example for you, if you don't believe me:
pxvqXgO.png

Restreaming random stream from twitch. You can clearly see ~30 CPU usage. And i'm not trying to fool you with this numbers by screencapping lowest/highest ones, they're average.
But when i try to capture game/movie (doesn't matter what i use, game or window capture) i get this:
SKplHrf.png


Am I wrong but weren't both those tests done in windows 10? both task managers look like 10 to me.


you really should do an apples to apples test to get any dev response. I know its probably a lot of work to go back to 7 then upgrade back to 10, but it would help if you could do some full tests on this. with an identical recording, with identical scenes, itdential times and post the logs of each.

Again, if something IS up, we need something more to go by than just an apples and oranges test. I do not have 7 to test with so
 

hypnotoad

New Member
I noticed the same problem, for me it was just the preset that i had to tune back. I was able to stream with faster @1080p 60fps, right now i have to use veryfast to have some spare CPU-power.
Do you have a nvidia or an AMD GPU? Maybe it's actually related to GPU drivers.
Am I wrong but weren't both those tests done in windows 10?
No, you are correct. It's simply to show you that i can actually stream some things 720p@60 FPS on i5-2500K with no more than ~30% CPU usage by obs. And i will perform those tests with identical scenes etc, but not today, maybe tomorrow. I think i'll play and capture simple 1-minute 60 FPS video on 7 and 10 systems, everything would be the same, scenes, settings, everything.
 
Last edited:

dping

Active Member
Do you have an nvidia or an AMD GPU? Maybe it's actually related to GPU drivers.

No, you are correct. It's simply to show you that i can stream some things 720p@60 FPS on i5 with no more than ~30% CPU usage by obs. And i will perform those tests with identical scenes etc, but not today, maybe tomorrow.

AMD. sadly, nVidia drivers have been less than stellar lately, and especially with win10.
 

Cryonic

Member
Nvidia GTX 970 here with the latest driver. The CPU usage from OBS should not increase while using new drivers, but Windows 10 actually changed a lot of stuff. But from the performance standpoint Win10 is better than anything what i used on this system before.
 

dping

Active Member
Nvidia GTX 970 here with the latest driver. The CPU usage from OBS should not increase while using new drivers, but Windows 10 actually changed a lot of stuff. But from the performance standpoint Win10 is better than anything what i used on this system before.
Thats partially correct, I believe some integrated GPUs suffer for high CPU usage that normally would be lower with a dedicated GPU. other than that I cannot explain what OPs issue is exactly
 

Cryonic

Member
Thats partially correct, I believe some integrated GPUs suffer for high CPU usage that normally would be lower with a dedicated GPU. other than that I cannot explain what OPs issue is exactly

This problem is noticeable even on highend rigs like mine, but we have the horsepower that we can throw at it.
I have no idea what they changed in Win10, specially in the directX-area, i`m more a hardware and audio guy.
We can live with it, but this should be fixed withhin 2-4 weeks (when new GPU driver go live etc).
For me this is just a small quality decrease, but people with older/slower hardware will suffer really bad from descreased performance...
 

hypnotoad

New Member
Here's results:
Windows 10 log: https://gist.github.com/8003af2dd6b23b765979
Windows 7 (nvidia 350.12) log: https://gist.github.com/241461a027ef4020db7b
Windows 7 (nvidia 353.62) log: https://gist.github.com/9860d643592238de5fe3
I played simple 1-minute 60 FPS clip and captured it. OBS version (654b), scene, video player, everything else was the same.
Some screenshots of CPU load:
Windows 10:
E1c4xg2.png
rkqU9gG.png

Windows 7:
aPtx7lx.png
4ZpCMWn.png

As you can clearly see, nothing has changed. Everything that I said earlier is still correct. On windows 10 OBS uses ~2x CPU power.

I performed another test. I tried to change my nvidia GTX670 GPU to "onboard" Intel3000 (in 2500K) and everything was basically the same. Still very high cpu usage on OBS under windows 10. I think that problem is not in the GPU driver.
 
Last edited:

dping

Active Member
Here's results:
Windows 10 log: https://gist.github.com/8003af2dd6b23b765979
Windows 7 (nvidia 350.12) log: https://gist.github.com/241461a027ef4020db7b
Windows 7 (nvidia 353.62) log: https://gist.github.com/9860d643592238de5fe3
I played simple 1-minute 60 FPS clip and captured it. OBS version (654b), scene, video player, everything else was the same.
Some screenshots of CPU load:
Windows 10:
E1c4xg2.png
rkqU9gG.png

Windows 7:
aPtx7lx.png
4ZpCMWn.png

As you can clearly see, nothing has changed. Everything that I said earlier is still correct. On windows 10 OBS uses ~2x CPU power.

I performed another test. I tried to change my nvidia GTX670 GPU to "onboard" Intel3000 (in 2500K) and everything was basically the same. Still very high cpu usage on OBS under windows 10. I think that problem is not in the GPU driver.
even though lower CPU usage in windows 7, take a look at this:
Code:
Total frames encoded: 3766, total frames duplicated: 682 (18.11%)
18:03:49: Total frames rendered: 3749, number of late frames: 23 (0.61%) (it's okay for some frames to be late)
 

Boildown

Active Member
It looks to me like Windows 10 has better multithreading capabilities, so it pushes the CPU harder to get every frame encoded, while Windows 7 "gives up" on 1% of the frames and doesn't even bother to encode them even though ~70% of the CPU isn't being used.

I don't see any evidence that there's a problem here. OBS is performing better now than it was before. Now if you have another application competing for CPU time with OBS, you might have to tweak priority settings differently than before to distribute CPU loads between them as you prefer. But if your CPU isn't being maxed out, this seems like a good thing, not a bad thing. Have you tried setting the priority on OBS lower?
 

hypnotoad

New Member
I tried it and there's zero difference in various priorities. And actually in some circumstances my CPU is being maxed out on windows 10 because of this higher CPU usage.
 
Top