So I recently was having an issue with the game suddenly stopping for 10 seconds and then would recover and continue normally for random periods of time and then would lock up again. Though the action while frozen like that was still going and often I would come out of the frozen screen. Dead. I have since discovered after many hours of testing that changing the core affinity of the game (which cores the app uses while running) has completely fixed the problem. I have a 6 core 12 thread cpu and I set my affinity to use only cores 5,6,7,8. I tried just using 2 cores but game was choppy. 4 seemed to be perfect. Though those with better systems may be able use just 2 and be fine.
You can do it manually each time you run the game or run a script from your desktop.
For my script it looks like this.
C:\Windows\System32\cmd.exe /c start “Diablo 3” /High /affinity 1E0 “d:\Diablo3\Diablo III\Diablo III.exe”
You can right click your desktop, choose new shortcut, and paste the command text above into the location field and your good to go (this is for windows 10 pathing so it may differ if your not running windows 10). Be sure to replace my HEX number with your HEX if you wish to use different cores.
The 3 digits after the word affinity are the core addresses in HEX. So there is a binary to HEX conversion you will need to do if you want to assign different cores.
You can hex converters online, seems forum won’t let me put links.
To find out your binary core number you have to count your cores and assign a 1 to the cores you wish to use and a zero to the ones you don’t. Cores are listed highest to lowest left to right for this example.
Example: For me, I have 12 cores. So you write down on a piece of paper 0000111100000 because I want to use cores 5,6,7,8. . And when you input 0000111100000 in a converter to hex to get 1E0.
There are lots of information on setting affinity so if this doesn’t make sense then google can probably help you as well.
Hope you find this useful.
Cheers.