STEAM GROUP
The useful Windows group UsefulWin
STEAM GROUP
The useful Windows group UsefulWin
5
IN-GAME
37
ONLINE
Founded
May 10, 2017
Language
English
Vitar Oct 24, 2018 @ 8:02am
Micro stuttering in games
I am buying a new PC now. I already bought i5-9600k CPU. It has good price and its performance is pretty cool according to benchmarks, especially in games (which is main goal for my new PC - playing games). So, I bought it.

Aaaand then I found information about micro stuttering. This occurs when your total frame rate is high but some of the frames are slow. For example you have 100 fps, which is 10ms (milliseconds) per frame. But what if framerate is not stable? Like, each 20 frame is ten times slower. This way each second you get 19 frames with 10ms and one frame 100ms. This is 20 frames per 290ms. Which is 69 fps average. But it certainly not feels like it, because 5% of your frames are 10fps actually, and other 95% are 100fps frames. Which makes your game experience much worse. Actually I saw a video where one guy explained this in details but now I can't find it.

I found these pictures:
Pic-1[i.postimg.cc]
Pic-2[i.postimg.cc]
Now I am a bit afraid that I made a wrong choice.
I googled this thing a bit and found out that micro stuttering is a real pain for some users. But most of the posts claim that it occurs because of display refresh rate, fps hard cap in a game, SLI configuration etc.

Doing my little investigation I have found Melody's post about Win10 optimization (these HPET, Platform Clock and Dynamic Tick were frequently the reason of micro stuttering in games according to many posts).

So, I'd like to hear your opinion on this matter. What is the reason of these 1% and 0.1% and will it lead to micro stuttering? Or main reason is frame rates and bad configs?

I'm definitely doing "HPET, Platform Clock and Dynamic Tick" tweak immediately after my Windows installation. Also I saw Melody's recommendation to turn off Windows Game Mode. I guess I will do that too.
Last edited by Vitar; Oct 24, 2018 @ 8:05am
Originally posted by Melody:
There are a lot of things that can cause microstuttering, we can split them in 2 main groups:
  • Hardware problems
  • Software problems

Hardware problems include latency issues and circuit issues. High latency is mainly caused by things like:
  • Using multiple sticks of RAM: Yes, because switching from one stick to another is just not like switching from one WORD to another, expecially when using multiple channels (dual-channel, quad-channel, etc.).
  • Using NUMA: This is only the case if you're using multiple CPUs. Non-uniform memory access can cause high latency when a processor tries to access memory that is located in a different NUMA node.
  • Using SLI/Crossfire: SLI/Crossfire adds latency to the system for obvious reasons, mostly because, most of the times, each card has to wait for the other one in order to continue its job.
  • Using RAID: Same reason of 1st cause, switching from one disk to another requires time, so it adds latency. This is expecially noticeable when writing many different files in a sequential way.
There are some other reasons, like faulty motherboard and dusty PCI-E slot (yes, that happens very frequently even though it looks ridiculous). The Power Supply Unit (PSU) is also a culprit more often than you'd expect, and using a very powerful and efficient PSU (even more powerful than required) can sometimes improve latency.

Software problems include interrupt issues (drivers), task scheduling in the OS, process priorities in the OS, problems with paging and so on. Here I list some of them:
  • No paging file, or insufficient paging file: Paging file is not only required to compensate when RAM is not enough, it's also used to defragment several portions of RAM. RAM requires a swappable space in order to be defragmented during runtime, so having a paging file is always suggested. Having fragmented portions of RAM will gradually slowdown your system and increase latency, forcing you to reboot after few hours.
  • Background processes interfering: This is another reason of microstuttering, if other processes put their tasks into the task list, the OS will provide some time period Q for the tasks to complete, so you'll lose few frames in your game every now and then. This is mostly caused by antiviruses or bad control panel applications, like the Synaptics TouchPad utility.
  • Interrupts: Ez explanation without going into deep: Interrupts are mostly signals sent to the CPU and tells it to stop for a bit until the driver or the application completes a task. This is mostly caused by drivers taking too much time to complete a task, thus they "hang" for a very short period of time and cause framedrops. The most common reason are sound drivers being set-up improperly.
  • Wrong clocksource and dynamic tick: I see you already know about this, this happens when the OS use either the standard ACPI or the HPET timer instead of the fastest TSC+ one. Dynamic Tick is a feature that decreases the tick rate when the system is idle or not doing many operations, this causes instability in games.
  • Wrong CPU governor: This is most likely the "Power saving settings" in Windows, just set it to "High performance" when playing games, it should set the governor to "performance" instead of the adaptive scaling one (depending on the CPU, you may have intel's proprietary scaler on Intel and ondemand/conservative/interactive on AMD).
  • Memory compression: The new Windows 10's memory compression feature allows to compress memory in RAM. This can cause latency and performance drops. Since I don't think this command is documented anywhere, you can run the following command in an Administrator PowerShell in order to disable memory compression:
    Disable-MMAgent -mc
There are also some other things to do, like tweaking the SystemResponsiveness registry value (which allows to prevent low priority processes from stealing CPU cycles) and tweaking the Audio and Games registry keys in the Multimedia key.
< >
Showing 1-4 of 4 comments
The author of this thread has indicated that this post answers the original topic.
Melody Oct 24, 2018 @ 9:37am 
There are a lot of things that can cause microstuttering, we can split them in 2 main groups:
  • Hardware problems
  • Software problems

Hardware problems include latency issues and circuit issues. High latency is mainly caused by things like:
  • Using multiple sticks of RAM: Yes, because switching from one stick to another is just not like switching from one WORD to another, expecially when using multiple channels (dual-channel, quad-channel, etc.).
  • Using NUMA: This is only the case if you're using multiple CPUs. Non-uniform memory access can cause high latency when a processor tries to access memory that is located in a different NUMA node.
  • Using SLI/Crossfire: SLI/Crossfire adds latency to the system for obvious reasons, mostly because, most of the times, each card has to wait for the other one in order to continue its job.
  • Using RAID: Same reason of 1st cause, switching from one disk to another requires time, so it adds latency. This is expecially noticeable when writing many different files in a sequential way.
There are some other reasons, like faulty motherboard and dusty PCI-E slot (yes, that happens very frequently even though it looks ridiculous). The Power Supply Unit (PSU) is also a culprit more often than you'd expect, and using a very powerful and efficient PSU (even more powerful than required) can sometimes improve latency.

Software problems include interrupt issues (drivers), task scheduling in the OS, process priorities in the OS, problems with paging and so on. Here I list some of them:
  • No paging file, or insufficient paging file: Paging file is not only required to compensate when RAM is not enough, it's also used to defragment several portions of RAM. RAM requires a swappable space in order to be defragmented during runtime, so having a paging file is always suggested. Having fragmented portions of RAM will gradually slowdown your system and increase latency, forcing you to reboot after few hours.
  • Background processes interfering: This is another reason of microstuttering, if other processes put their tasks into the task list, the OS will provide some time period Q for the tasks to complete, so you'll lose few frames in your game every now and then. This is mostly caused by antiviruses or bad control panel applications, like the Synaptics TouchPad utility.
  • Interrupts: Ez explanation without going into deep: Interrupts are mostly signals sent to the CPU and tells it to stop for a bit until the driver or the application completes a task. This is mostly caused by drivers taking too much time to complete a task, thus they "hang" for a very short period of time and cause framedrops. The most common reason are sound drivers being set-up improperly.
  • Wrong clocksource and dynamic tick: I see you already know about this, this happens when the OS use either the standard ACPI or the HPET timer instead of the fastest TSC+ one. Dynamic Tick is a feature that decreases the tick rate when the system is idle or not doing many operations, this causes instability in games.
  • Wrong CPU governor: This is most likely the "Power saving settings" in Windows, just set it to "High performance" when playing games, it should set the governor to "performance" instead of the adaptive scaling one (depending on the CPU, you may have intel's proprietary scaler on Intel and ondemand/conservative/interactive on AMD).
  • Memory compression: The new Windows 10's memory compression feature allows to compress memory in RAM. This can cause latency and performance drops. Since I don't think this command is documented anywhere, you can run the following command in an Administrator PowerShell in order to disable memory compression:
    Disable-MMAgent -mc
There are also some other things to do, like tweaking the SystemResponsiveness registry value (which allows to prevent low priority processes from stealing CPU cycles) and tweaking the Audio and Games registry keys in the Multimedia key.
Thoth Jan 1, 2020 @ 10:04pm 
"Memory compression: The new Windows 10's memory compression feature allows to compress memory in RAM. This can cause latency and performance drops. Since I don't think this command is documented anywhere, you can run the following command in an Administrator PowerShell in order to disable memory compression:
Disable-MMAgent -mc"

Sorry to necro an old thread but is this in reference to standby memory or something different? The rest of the suggestions here I have applied and all of this is good advice. The only thing I will add about HPET is to leave in on in BIOS and disable in the OS only. I mention this because so many places recommend this in addtion to the tweaks you gave above and those tweaks do the job on their own. Anyways cheers mate!
Melody Jan 4, 2020 @ 5:27am 
Originally posted by Thoth:
"Memory compression: The new Windows 10's memory compression feature allows to compress memory in RAM. This can cause latency and performance drops. Since I don't think this command is documented anywhere, you can run the following command in an Administrator PowerShell in order to disable memory compression:
Disable-MMAgent -mc"

Sorry to necro an old thread but is this in reference to standby memory or something different? The rest of the suggestions here I have applied and all of this is good advice. The only thing I will add about HPET is to leave in on in BIOS and disable in the OS only. I mention this because so many places recommend this in addtion to the tweaks you gave above and those tweaks do the job on their own. Anyways cheers mate!
The Memory Compression feature allows compressed memory blocks to exist in both Active and Standby memory. In order to read those blocks, the CPU also needs to decompress those blocks, and this means added latency straight out. Whenever the OS decides to compress some blocks, the CPU needs to read that block, compress it, and write it back to RAM as a compressed block.
Last edited by Melody; Jan 4, 2020 @ 5:28am
Thoth Jan 9, 2020 @ 12:29am 
Originally posted by Melody 💙:
Originally posted by Thoth:
"Memory compression: The new Windows 10's memory compression feature allows to compress memory in RAM. This can cause latency and performance drops. Since I don't think this command is documented anywhere, you can run the following command in an Administrator PowerShell in order to disable memory compression:
Disable-MMAgent -mc"

Sorry to necro an old thread but is this in reference to standby memory or something different? The rest of the suggestions here I have applied and all of this is good advice. The only thing I will add about HPET is to leave in on in BIOS and disable in the OS only. I mention this because so many places recommend this in addtion to the tweaks you gave above and those tweaks do the job on their own. Anyways cheers mate!
The Memory Compression feature allows compressed memory blocks to exist in both Active and Standby memory. In order to read those blocks, the CPU also needs to decompress those blocks, and this means added latency straight out. Whenever the OS decides to compress some blocks, the CPU needs to read that block, compress it, and write it back to RAM as a compressed block.

Ah thanks for the explanation Melody! :)
< >
Showing 1-4 of 4 comments
Per page: 1530 50