TWEAK: Enable HPET (in BIOS and OS) for better performance and FPS


Recommended Posts

HPET off in WIndows: Timers are not in sync:

Windows8RTCBugTestingV2_12.png

 

HPET on in Windows: Timers are in sync:

Windows8RTCBugTestingV2_13.png

 

 

There is a timer big in Win 7 & 8

http://www.ocaholic.ch/modules/smartsection/item.php?itemid=1071

 

 

Because of a bug this deep, it's expected for software such as games and applications perform differently. So for to get the best result with application in question, one just has to benchmark, test and see.

 

The timer bug issue is real.

I thought these "tweaks" were dying out.

 

This does absolutely nothing positive on anything I've tried it with.  At best it does nothing, at worst it makes the system completely unpredictable in terms of performance.

 

What are you going to tell us to do next? Go into msconfig and tell Windows to use multiple cores during boot?

He really misses the forest for the trees there. All of this wasted idle time accounts for only small fractions of energy in comparison to load times. I would hazard a guess that Idle loads make up 1-3% of the power budget of server farms and super computers. The focus in HPC has generally been on saving power during load times and reducing maximum power consumption because that's were you see obvious savings.

 

He also makes the same mistake that is being made in this thread: not testing for overhead in real workloads. You can't establish a relationship for %overhead in real loads by testing a toy benchmark. He's probably right that there is noticeable overhead from higher timers resolution in general, but he certainly isn't proving it .

  • 3 weeks later...

To test the impact of HPET specifically for my system I decided to use the Bioshock Infinite Benchmarking utility.

The reason being simply because I plan on playing this game.
In the tool I chose the options: (2) UltraDX11_DDOF, (2) Custom resolution, (1) 16:9, (4) 1920 x 1080
I ran the 5 tests in succession after first restarting the computer and verified the HPET settings were activated via WinTimerTester I then let the computer idle for 5 minutes.

My Operating system is: Windows 7 Pro x64
CPU: Core i5 3570K OC to 3.8GHz - CPU power saving features disabled so it runs at a constant 3.8GHz always.
Mobo: Asus P8z77-v pro (Note the LPCIO is a Nuvotron)
RAM: Gskill Sniper 2133 2x4GB
GPU: EVGA Nvidia Geforce 560Ti 1GB Crysis 2 edition

I read somewhere that Nuvotron timer on Asus boards perform worse than the regular timers - which is reflected below.

With HPET enabled in bios and useplatformclock yes: (WinTimerTester reports QPF 14.31818 MHz)
test 1 avg fps: 42.06 min: 13.34 max: 82.70
test 2 avg fps: 42.04 min: 17.39 max: 77.26
test 3 avg fps: 42.07 min: 15.40 max: 80.88
test 4 avg fps: 41.92 min: 13.98 max: 87.14
test 5 avg fps: 42.11 min: 16.25 max: 82.07
Total Average FPS: 42.04

With HPET disabled in bios and useplatformclock no: (WinTimerTester reports QPF 3.32038 MHz)
test 1 avg fps: 42.50 min: 15.48 max: 82.53
test 2 avg fps: 42.50 min: 11.54 max: 87.50
test 3 avg fps: 42.59 min: 18.49 max: 87.16
test 4 avg fps: 42.51 min: 15.68 max: 86.36
test 5 avg fps: 42.55 min: 19.99 max: 85.29
Total Average FPS: 42.53 (gain of 0.49 fps or 1%)

Interestingly, If I leave HPET enabled in BIOS and used bcdedit /deletevalue useplatformclock and reboot, WinTimerTester reports QPF to be 3.32037. FPS avg was 42.37.

When I used latencyMon to do latency tests this is what I got with HPET on and off:

HPET ON:

Highest measured interrupt to process latency (?s):   137.307954
Average measured interrupt to process latency (?s):   3.937589

Highest measured interrupt to DPC latency (?s):       72.285723
Average measured interrupt to DPC latency (?s):       1.535534

HPET Off:

Highest measured interrupt to process latency (?s):   78.304503
Average measured interrupt to process latency (?s):   1.111873

Highest measured interrupt to DPC latency (?s):       77.099818
Average measured interrupt to DPC latency (?s):       0.492777

both tests were done after letting the computer idle 10 minutes after rebooting it and checking that wintimertester reported the correct frequencies.
The tests were also let to run for 10 minutes.

Conclusion: (For me at least or people using the same board/Nuvotron LPCIO with Win7) Leave HPET disabled in motherboard and useplatformclock set to no.
If you are using windows 8 you probably want HPET enabled if you are overclocking or using turbo boost as it can actually mess up your clock and possibly do other things.

 

I still have the benchmark results saved so if you need more detail I can provide it.

The FPS results are too "noisy", you have a variance of 10fps in one of the tests, so an average increase of 0.49fps is just "noise", if you repeated those tests you'd get different results again.

Not really surprising. If there was a difference, gaming sites would have been widely reporting the results and we'd have seen professional benchmarks of HPET vs non-HPET for gaming.

Well its not like the Bioshock Infinite benchmark is an accredited benchmarking program or anything. However the latencymon tests are pretty clear to me. Honestly I can't really feel or see any difference between this setting being set to on or off but it is true my latency is lower with hpet completely disabled. An average of nearly 4us compared to 1.1us on interrupt to process latency is pretty big.

 

I did my work. I would like to see others do some benchmarks and compare scores like I did. Especially to confirm whether or not the Nuvotron LPCIO results in worse timings compared to other manufacturers.

Well its not like the Bioshock Infinite benchmark is an accredited benchmarking program or anything. However the latencymon tests are pretty clear to me. Honestly I can't really feel or see any difference between this setting being set to on or off but it is true my latency is lower with hpet completely disabled. An average of nearly 4us compared to 1.1us on interrupt to process latency is pretty big.

 

I did my work. I would like to see others do some benchmarks and compare scores like I did. Especially to confirm whether or not the Nuvotron LPCIO results in worse timings compared to other manufacturers.

Don't discount your Bioshock results. Bioshock is real world benchmark and is exactly what you would want test here to see if HPET results in tangible real-world performance gains/losses. It's the difference between micro-benchmarking and benchmarking actual applications. See: http://en.wikipedia.org/wiki/Benchmark_(computing) and see post #73 in this thread where I discussed the numerous issues with how the original benchmarking was done in this thread.

 

In this particular case with your DPC benchmarks, we are talking about DPC latencies with a few millionths of a second difference on average. These results are so tiny that it would be impossible to perceive a difference for real-time audio/video. Now if there had been large spikes that would be a different story.

 

Also, one last things to note, the LPC Bus is separate from clock generation (It's not the clock source).

 

Hi there, where to get this timers tool from, shown in hardbags screenshots?

He used this: http://en.wikipedia.org/wiki/Windows_System_Assessment_Tool

sure? how to show this timers window then?

I thought you were talking about the scores from post #61 (. For those you need to run winsat in command line:

http://windowsitpro.com/systems-management/how-can-i-run-windows-system-assessment-tool-winsat-update-directly-command-line

 

For the other benchmarks, he list those in the corresponding post.

thanks a lot for your efforts. just for better understanding, im talking about the pictures in post #77. there is a link, but i'm not able to find this software anywhere!

Oh, that particular piece of software is private. Comments on the website of that thread asked for it, and the author declined to give it for some reason. As such, the results should be taken with a grain of salt since they are not verifiable.

 

You may be able to find another piece of software that gives the resolution for the other timers, but you can test HPET using wintesttimer.

Don't discount your Bioshock results. Bioshock is real world benchmark and is exactly what you would want test here to see if HPET results in tangible real-world performance gains/losses. It's the difference between micro-benchmarking and benchmarking actual applications. See: http://en.wikipedia.org/wiki/Benchmark_(computing) and see post #73 in this thread where I discussed the numerous issues with how the original benchmarking was done in this thread.

 

In this particular case with your DPC benchmarks, we are talking about DPC latencies with a few millionths of a second difference on average. These results are so tiny that it would be impossible to perceive a difference for real-time audio/video. Now if there had been large spikes that would be a different story.

 

Also, one last things to note, the LPC Bus is separate from clock generation (It's not the clock source).

...

Yeah, this is one of those things where benchmarking doesn't help much, since any improvements won't be visible. The default timer resolution on Windows is only 16ms (You can lower it, but Microsoft recommends against it for a bunch of reasons), so seeing an improvement of a few microseconds on one benchmark isn't going to translate into a real world difference.

And the benchmark that is useful (The Bioshock one) is noisy enough to not actually show any improvements, and that's just a fact of how computers work (The game isn't the only thing running, each run of the game will actually be different due to multiprocessing, etc.). If we saw a large improvement over multiple runs of the benchmark then we could see that the tweak had some actual effect.

  • Like 1

These are my results:

 

 

cbv9.jpg

wnfz.jpg

 

My Hardware: 3770K std clock on a GA-Z77-DS3H (TimerResolution.exe running in background) (HPET on, OS and EFI)

 

I saw, for example on Cartels pictures (#60), people with way lower latencies. How to reach them? With HPET off I'm still not able to reach these low latencies... :(

In what scenario does it possibly matter?

 

There are no actual use benefits from a lower latency here.

 

 

Hi there,

 

in Germany it's very rude to answer a question with a counter question. But I'd like some help, so I'll try to explain. Before I experimented with the HPET Option activated, I had a lower latency. Many things ran smoother and more fluent. Now with HPET on, some other things work better. So why shouldn't I try to combine these options? Obviously this should be the best possible system setting for me.

 

Kind regards,

WonG.

Hi there,

 

in Germany it's very rude to answer a question with a counter question. But I'd like some help, so I'll try to explain. Before I experimented with the HPET Option activated, I had a lower latency. Many things ran smoother and more fluent. Now with HPET on, some other things work better. So why shouldn't I try to combine these options? Obviously this should be the best possible system setting for me.

 

Kind regards,

WonG.

My former co-worker from Germany use to do this :laugh:. That's a bit of a digression but there are many cases where asking a counter question is perfectly valid. In this case, Wakers has a valid point and question. The reason being that you are seeing latencies in the 500 millionths of a second range. The resolution is so tiny that you should be able to handled deferred real time video and audio without delays (read as: smooth playback).

 

That being said to answer your question, you probably aren't going to be able to achieve lower latencies than you are currently seeing. The only thing else you can do is play with turning off device drivers. For example, turning off wireless will lower my DPC latencies. One other things you can do that I don't personally recommend is disable dynamic scaling of cores (in the power options set the minimum processor state to 100%).

 

Let me be clear about what happens when you have the platformclock setting as false. It's not that it disables HPET, what really happens is that it Windows uses a combination of timers for timing (TSC + HPET). Why? Because using the TSC is cheaper to sample than HPET so it is better suited for scheduling operations. However, at the same time HPET is useful for scheduling one-shot interrupts for sleeping or idling systems (it saves power). The point, I'm making is that different timers have advantages and disadvantages in certain scenarios and this is not, "HPET is the best timer on the system" as the information you'll find around the web would seem to indicate.

 

As for how that relates back to DPC latencies: I noticed a consistent difference of only 50-100us minimum on my laptop between forcing / not forcing HPET. It was far too low make any perceivable difference. To put that in context, in testing the difference is ~1-2% of the maximum latencies I see on my laptop (wifi causes spiking of 1000-3000us at times).

 

To be perfectly honest, I'm not even convinced that the timer they are using to measure DPC has consistent reliable results between when HPET is forced and not forced. Why? The Windows API doesn't give you a consistent clock source. It depends on the system configuration which we are changing in this scenario. See section 2.1.4 here: http://www.windowstimestamp.com/description -- so how can I be sure the differences aren't accounted for by changes in the timer function behavior itself?

But I already saw way lower latencies on other screenshot, for example in post #60. Without HPET activated my latency was about 60-90?s. And believe me, the difference is huge (especially in video games). I saw people with latencies about 20-50 with HPET activated. A stable latency (around 100?s) should work for me. Otherwise I'll have to deactivate HPET again, because the disadvantages outbalance the advantages. That's not what I'm aiming for, I don't want to miss the advantages I already acquired :(

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I feel like Surface devices were popular about 10 years ago but have fallen off hard. I can't remember the last time someone talked about a new model Surface with excitement. The fact that the headline here is a new wallpaper and not the device is a bit telling.
    • Weirldy, in Texas the age of consent is 17, not 18.
    • DXVK generally performs better on Linux (using Wine/Proton) than on Windows. Because Linux utilizes highly optimized, open-source Vulkan drivers (like RADV/ACO) that were specifically built for AMD Radeon hardware, the translation of Direct3D 9/11 to Vulkan is highly efficient. But if you take the trouble to watch my video, you can see that there are also advantages for Nvidia users. You see that I run Assassin's Creed Odyssey on 4GB RAM and on an i3-3240. What do you think are the minimum system requirements for windows11? For CPU-based rendering, Linux is generally faster than windows11 by about 15% due to lighter background overhead and efficient kernel scheduling.
    • NetSpeedTray 1.3.2 by Razvan Serea NetSpeedTray is a lightweight, open-source Windows network monitor that shows live upload and download speeds directly on the Taskbar. Designed for efficiency, it quietly sits in the system tray, conserving CPU and battery with dynamic updates. It blends seamlessly with Windows 10/11, adapts to light/dark themes, and auto-positions to avoid overlaps. Features include accurate interface detection, customizable display, optional mini-graph, color coding, granular font and unit control, detailed per-interface history graphs, safe data management, and easy CSV export—bringing the network monitoring Windows forgot. NetSpeedTray key features: Lightweight & Efficient Runs quietly in your system tray without consuming resources. Features a "Dynamic Update Rate" that lowers refresh frequency when the network is idle to save CPU and battery life. Native Look & Feel Blends seamlessly with Windows 10/11 UI. Smart detection for light and dark taskbar themes ensures text is always visible. Intelligent & Adaptive Positioning Automatically finds empty space next to your system tray and shifts to make room for new icons, preventing overlaps. Seamless OS Integration Behaves like a native Windows component. Hides instantly with auto-hiding taskbar Hides when a fullscreen app is active Smart Network Monitoring Accurate by Default: Auto mode identifies your main internet connection and ignores noise from VPNs or virtual adapters. Easy Interface Selection: Switch effortlessly between Auto, All, or Selected network interfaces via intuitive radio buttons. Total Visual Customization Free Move Mode: Unlock and place the widget anywhere on your screen. Optional Mini-Graph: Real-time graph of recent network activity with adjustable opacity. Color Coding: Customize colors and speed thresholds to quickly see network status. Granular Display Control Text & Font: Adjust font family, size, weight, and alignment. Units: Automatic (B/s, KB/s, MB/s) or fixed Mbps display. Precision: Set decimal places and always show them for uniform appearance. Detailed & Intelligent History Graph Smart Scale: Logarithmic scale shows low-level traffic and large spikes clearly. Per-Interface Filtering: View speed history for specific adapters (Wi-Fi, Ethernet, VPN). Safe & Efficient Data Management: Adjustable retention, automatic cleanup, optimized database. Easy Data Export: Export raw data to .csv or save high-quality graphs for reports. NetSpeedTray v1.3.2: Smaller, Lighter, Better Multi-Monitor NetSpeedTray v1.3.2 focuses on being smaller, lighter, and more reliable, with major memory savings, better multi-monitor support, stronger privacy protections, and easier troubleshooting. Changes 24% smaller installer (106 → 81 MB) 28% smaller portable ZIP (127 → 91 MB) 45–70% lower idle RAM usage (~135 MB → ~40–75 MB) Preferred Monitor setting for multi-monitor setups (#72) Export Support Bundle for one-click bug-report packaging Live Windows Light/Dark theme detection (#62) Lazy loading of matplotlib & numpy for faster, lighter startup Improved multi-monitor widget position restore after reboot (#133) Windows 10/11 stylesheet and font compatibility fixes (#149) Support Bundle includes sanitized logs, config, and system info PII obfuscator hardened to cover IPv6, MACs, hostnames, GUIDs, and paths (#141) Unified log redaction across file and console logging Better diagnostic logging included by default in support bundles Korean translation improvements and updated translator credits (#139) Test suite expanded from 146 → 191 passing tests (+45) [full release notes] Download: NetSpeedTray 1.3.2 | 81.6 MB (Open Source) Download: NetSpeedTray Portable | 91.1 MB View: NetSpeedTray Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Reluctantly..bs. In this day and age(pun intended) information is more valuable then apps; big tech worked with the GOP and in dem states like California to add this crap so they can agro better marketing data.
  • Recent Achievements

    • Apprentice
      fernan99 went up a rank
      Apprentice
    • One Month Later
      nothanks earned a badge
      One Month Later
    • One Month Later
      B2Proxy earned a badge
      One Month Later
    • One Year In
      MadMung0 earned a badge
      One Year In
    • Week One Done
      jefred earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      473
    2. 2
      PsYcHoKiLLa
      237
    3. 3
      Skyfrog
      79
    4. 4
      FloatingFatMan
      69
    5. 5
      Michael Scrip
      59
  • Tell a friend

    Love Neowin? Tell a friend!