thaya
New Member
Posts: 12
|
Post by thaya on Feb 11, 2016 11:22:49 GMT
Currently, d3h takes a good 25-50% of CPU when set to 60 ticks/sec. It actually goes up from ~26-28% to ~52-53% for me when I tab.
I understand why it runs on a loop and just flat occupies a core (or two?), and that rewriting this is insane effort. But I was wondering if you could maybe make it stop looping when D3 window isn't focused? I alt tab and chill a lot between rifts or bounties or whatever, and then I just forget about d3h running. I feel sad for my CPU sometimes. I can also clearly tell the difference in fanspeed when I do turn it off, as I play with speakers and not headphones.
|
|
|
Post by techdough on Feb 18, 2016 16:49:04 GMT
what benefit will this actually have short of improving your alt-tabbed experience, whats your specific use case. I am not an expert on this exact code base but pausing d3helper when alt-tabbed will cause it to go out of sync with the d3 memory state, because d3 is still doing stuff even when alt-tabbed. Syncing these back up, may prove to be an issue.
|
|
thaya
New Member
Posts: 12
|
Post by thaya on Mar 8, 2016 2:58:12 GMT
what benefit will this actually have short of improving your alt-tabbed experience, whats your specific use case. I am not an expert on this exact code base but pausing d3helper when alt-tabbed will cause it to go out of sync with the d3 memory state, because d3 is still doing stuff even when alt-tabbed. Syncing these back up, may prove to be an issue. Improving alt-tabbed experience is a big deal though. Having a program occupy 25-50% cycles for no reason is a big deal. I don't like the higher temps, the higher fan speed, I don't like being unable to do anything CPU intensive because 20-40% is taken by the game and then another 30-50% by d3h. (It's also weird that it takes more while tabbed I think, but I don't know how exactly it works.) There's already a manual workaround - set ticks to 1 per second instead of 60. It makes d3h go from 50% to ~1-2% CPU use for me. I realize d3h needs to stay in sync with the game, and I'm also not asking to (re)code something big, just something along the lines of "set tick rate to 1 when window isn't focused" as an option. Something trivial like this but with big quality of life value.
|
|
|
Post by techdough on Mar 9, 2016 22:05:35 GMT
ah I see. makes sense and seems much more doable with your provided work around. I will take a shot at it and create a fork.
|
|
thaya
New Member
Posts: 12
|
Post by thaya on Mar 11, 2016 10:06:46 GMT
Is it possible to maybe make it use less CPU cycles in general btw? Like, how big of a task is that? There are other memory reading / input simulating programs for Diablo 3 out there that don't flat occupy 50% of the CPU... so surely it's possible and just a matter of implementation?
I actually start losing FPS in big density with the CPU running at 99-100%.
|
|
|
Post by toxicphenom on Mar 11, 2016 11:01:20 GMT
Problem is, its not D3Helper per se which causes the high cpu usage. It's the enigma library.
|
|
thaya
New Member
Posts: 12
|
Post by thaya on Mar 12, 2016 2:15:20 GMT
Yeah but I mean, Enigma is a d3 mem reading framework, and Turbohud for example is also entirely about reading memory, yet it doesn't occupy entire CPU threads while doing so. So technically there must be a way to do this.
I guess I'm asking to rewrite the software from scratch as its already based on a framework though. Meh
|
|
|
Post by toxicphenom on Mar 12, 2016 19:30:37 GMT
R3peat stated he edited some of the enigma code, but i think d3helper maybe calls/refresh too often.
|
|
thaya
New Member
Posts: 12
|
Post by thaya on Mar 12, 2016 21:53:01 GMT
Isn't it possible to give it a 'virtual' thread somehow? To make it use 10-20% instead of 25-50%. Other than via hardware (HT)?
I realize it's just a thing running on a loop thats taking all the cycles, and it just occupies all of them available. It's not actual processing going on.
|
|