• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

TweakHound

Computer stuff...

  • Home
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10
  • Linux
  • Tweak Guides
  • Site Info
    • About
    • About Me
    • TweakHound’s World
    • Contact
    • My Computers
    • Old Articles
    • Privacy Policy
    • Old Index
    • Advanced Search

Timer Tweaks Benchmarked

th

January 30, 2014, 16:53(EST) By Eric (a.k.a. TweakHound)

— This post is unfinished and should be considered early BETA version until further notice. I am hoping for some feedback / input.
*** I have had several conversations with folks who are or have purported to be knowledgeable in this subject. To date they have all backed out or disappeared once I request to publish their statements and names. That all changed today as I received input from an expert in regards to the useplatformclock tweak.
IMHO it is very important to read what he has to say. The full email exchange is at the bottom of this post.

****Edit 22DEC2014
Folks, I’ve done all I can with these tweaks.
I cannot reproduce results others (mostly overclockers) are seeing with this.
This does not mean some folks are not seeing a positive effect, simply that I’m unable to reproduce it.
Please read the 2 email conversations at the end of this article.
For me, this issue is now closed.


3 purported performance tweaks benchmarked.
They are: useplatformclock, tscsyncpolicy, and disabledynamictick.

Opening Statement
These tweaks have been mentioned in some places (and to me) as performance tweaks. I set out to see if they were.

The Tweaks, Defined
bcdedit /set useplatformclock true
bcdedit /set tscsyncpolicy Enhanced
bcdedit /set disabledynamictick yes

The commonality they share is they are setting that involve the system clock.
In general Windows will use the best timer your hardware supports and may use a mix of timers.
“Best” does not always mean fastest. Fastest can mean errors.
These settings can harm battery life.
As I understand it, Windows 8.1 defaults to invariant TSC when hardware supports it.

These tweaks are applied via Command Prompt (Admin).
To remove them:
bcdedit /deletevalue useplatformclock
bcdedit /deletevalue tscsyncpolicy
bcdedit /deletevalue disabledynamictick

To view bcdedit settings:
bcdedit /enum

http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202%28v=vs.85%29.aspx
useplatformclock [ yes | no ]
Forces the use of the platform clock as the system’s performance counter.
Note This option should only be used for debugging.

tscsyncpolicy [ Default | Legacy | Enhanced ]
Controls the times stamp counter synchronization policy. This option should only be used for debugging.
Note The option is available starting in Windows 8 and Windows Server 2012.

disabledynamictick [ yes | no ]
Enables and disables dynamic timer tick feature. The option is available starting with Windows 8 and Windows Server 2012.
Note This option should only be used for debugging.


The Tweaks, More Info

If you also use Linux on your machine you can check system messages for which timer your system supports.
From my machine:
2013-12-01T07:31:10.607644-05:00 XXXXXXXXXX kernel: [ 0.000000] hpet clockevent registered
2013-12-01T07:31:10.607645-05:00 XXXXXXXXXX kernel: [ 0.000000] tsc: Fast TSC calibration using PIT
2013-12-01T07:31:10.607645-05:00 XXXXXXXXXX kernel: [ 0.001000] tsc: Detected 2693.799 MHz processor
2013-12-01T07:31:10.607753-05:00 XXXXXXXXXX kernel: [ 0.036518] TSC deadline timer enabled
2013-12-01T07:31:10.608522-05:00 XXXXXXXXXX kernel: [ 1.818067] tsc: Refined TSC clocksource calibration: 2693.880 MHz
2013-12-01T07:31:10.608528-05:00 XXXXXXXXXX kernel: [ 2.818095] Switched to clocksource tsc

Useplatformclock
a.k.a – HPET tweak
Forces Windows to use hardware timer instead of OS default.

Tscsyncpolicy
Very little information exists at Microsoft.com on tscsyncpolicy:
https://www.google.com/#filter=0&q=tscsyncpolicy+site:microsoft.com

Disabledynamictick
Very little information exists at Microsoft.com on disabledynamictick:
https://www.google.com/#q=disabledynamictick+-social+-answers+site:microsoft.com
The only legitimate use for this I have seen is as a fix for hardware issues that has since been fixed.
Example:
Issue: http://withinwindows.com/within-windows/2012/06/28/workaround-for-windows-8-freezing-issues
Fixed: http://withinwindows.com/within-windows/2012/07/10/hotfix-available-for-windows-8-freezing-issues


Places I Found Info:
The Windows Timestamp Project – Microsecond Resolution Time Services for Windows
Microsoft: Timers, Timer Resolution, and Development of Efficient Code
Wikipedia – High Precision Event Timer
Wikipedia – Time Stamp Counter
Oracle – High Resolution Timesource (Linux)
A Negative Ping Value, Hang Condition, Poor Performance or Machine Checks may be experienced on IBM System X Multinode Servers running Microsoft Windows 2008 R2 – IBM System x
Microsoft – Guidelines For Providing Multimedia Timer Support (old info but informative)
Intel 64 and IA-32 Architectures Software Developer’s Manual

Interesting Forum Posts
http://www.neowin.net/forum/topic/1075781-tweak-enable-hpet-in-bios-and-os-for-better-performance-and-fps/
http://forums.guru3d.com/showthread.php?s=21dd8ddd4aa9dc89114ceec5f271c275&t=368604
http://rog.asus.com/forum/showthread.php?23113-HPET-High-Precision-Event-Timer&s=d1869792a05a1efea5d936c63e0908a9

Tools
LatencyMon

WinTimerTester 1.1


Benchmarks
Hardware: My Laptop (Intel i7)
OS: Windows 8.1

PCMark8 Pro – Creative Conventional 3.0 (external monitor)
Download & Info
(click score to see details at futuremark page)

PCMark8 Score
baseline 3589
useplatformclock 3538
tscsyncpolicy 3589
disabledynamictick 3589

ttweaks_pcmark8

3dMark Pro – Fire Strike Extreme 1.1 (external monitor)Download
Download & Info
(click score to see details at futuremark page)

3dMark Score
baseline 791
useplatformclock 792
tscsyncpolicy 792
disabledynamictick 791

ttweaks_3dmark

 

Passmark 8.0
Download
Setup: Laptop plugged in to external monitor. Forced Passmark to use Nvidia card instead of Intel. (full scores here)

 Passmark  baseline  useplatformclock  tscsyncpolicy  disabledynamictick
 Rating  3720.8  3590.0  3728.2  3619.2

 

Nvidia TimerTiming
Download

16 Tests. Without useplatform tweak is faster 14 of 16.

 Before useplatform tweak.  After useplatform tweak
Report file for timing the various timers.*** Key number is the avg time.
The smaller this number, the faster the timer.
QueryPerformanceFrequency() freq = 0 2630752
method 0:
QueryPerfCntr..() 100 times
tot: 0 3
avg: 0.030000
avg time: 1.14036e-008
method 0:
QueryPerfCntr..() 500 times
tot: 0 14
avg: 0.028000
avg time: 1.06433e-008
method 0:
QueryPerfCntr..() 1000 times
tot: 0 27
avg: 0.027000
avg time: 1.02632e-008
method 0:
QueryPerfCntr..() 10000 times
tot: 0 279
avg: 0.027900
avg time: 1.06053e-008method 1:
GetTickCount() 100 times
tot: 0 1
avg: 0.010000
avg time: 3.80119e-009
method 1:
GetTickCount() 500 times
tot: 0 4
avg: 0.008000
avg time: 3.04096e-009
method 1:
GetTickCount() 1000 times
tot: 0 31
avg: 0.031000
avg time: 1.17837e-008
method 1:
GetTickCount() 10000 times
tot: 0 79
avg: 0.007900
avg time: 3.00294e-009method 2:
TimeGetTime() 100 times
tot: 0 16
avg: 0.160000
avg time: 6.08191e-008
method 2:
TimeGetTime() 500 times
tot: 0 22
avg: 0.044000
avg time: 1.67253e-008
method 2:
TimeGetTime() 1000 times
tot: 0 42
avg: 0.042000
avg time: 1.5965e-008
method 2:
TimeGetTime() 10000 times
tot: 0 406
avg: 0.040600
avg time: 1.54328e-008method 3:
Pentium internal high-freq cntr() 100 times
tot: 0 3
avg: 0.030000
avg time: 1.14036e-008
method 3:
Pentium internal high-freq cntr() 500 times
tot: 0 11
avg: 0.022000
avg time: 8.36263e-009
method 3:
Pentium internal high-freq cntr() 1000 times
tot: 0 20
avg: 0.020000
avg time: 7.60239e-009
method 3:
Pentium internal high-freq cntr() 10000 times
tot: 0 192
avg: 0.019200
avg time: 7.29829e-009
Report file for timing the various timers.*** Key number is the avg time.
The smaller this number, the faster the timer.
QueryPerformanceFrequency() freq = 0 14318180
method 0:
QueryPerfCntr..() 100 times
tot: 0 1079
avg: 10.790000
avg time: 7.53587e-007
method 0:
QueryPerfCntr..() 500 times
tot: 0 5205
avg: 10.410000
avg time: 7.27048e-007
method 0:
QueryPerfCntr..() 1000 times
tot: 0 10331
avg: 10.331000
avg time: 7.2153e-007
method 0:
QueryPerfCntr..() 10000 times
tot: 0 103280
avg: 10.328000
avg time: 7.21321e-007method 1:
GetTickCount() 100 times
tot: 0 33
avg: 0.330000
avg time: 2.30476e-008
method 1:
GetTickCount() 500 times
tot: 0 40
avg: 0.080000
avg time: 5.5873e-009
method 1:
GetTickCount() 1000 times
tot: 0 68
avg: 0.068000
avg time: 4.74921e-009
method 1:
GetTickCount() 10000 times
tot: 0 457
avg: 0.045700
avg time: 3.19175e-009method 2:
TimeGetTime() 100 times
tot: 0 136
avg: 1.360000
avg time: 9.49841e-008
method 2:
TimeGetTime() 500 times
tot: 0 167
avg: 0.334000
avg time: 2.3327e-008
method 2:
TimeGetTime() 1000 times
tot: 0 284
avg: 0.284000
avg time: 1.98349e-008
method 2:
TimeGetTime() 10000 times
tot: 0 2284
avg: 0.228400
avg time: 1.59517e-008method 3:
Pentium internal high-freq cntr() 100 times
tot: 0 35
avg: 0.350000
avg time: 2.44444e-008
method 3:
Pentium internal high-freq cntr() 500 times
tot: 0 72
avg: 0.144000
avg time: 1.00571e-008
method 3:
Pentium internal high-freq cntr() 1000 times
tot: 0 125
avg: 0.125000
avg time: 8.73016e-009
method 3:
Pentium internal high-freq cntr() 10000 times
tot: 0 1148
avg: 0.114800
avg time: 8.01778e-009

Conclusion
Notes:
1 – Since I am not experiencing any stuttering or lagging issues I can only attest to the performance impact. You should fully update Windows as many of these issues have reportedly been fixed.
2 – When viewing info on this subject on the web (especially forum posts), anecdotal evidence suggests that the effect of these tweaks may be hardware dependant. I’m unsure what would drive this variation (bad hardware, BIOS, drivers???). I’ve only tested these tweaks on my laptop.
3 – I understand that these tweaks can show improved latency numbers. I cannot see where this is translating into any performance benefit.
4 – Latency can influence things like audio recording. Most likely real-time high-end type use. I’ve not tested this.
5 – Although it would take far more benchmarks across many different types of hardware, it seems if the useplatformclock tweak has any effect it is negative.
(On my laptop PCMark 8, Passmark show slightly lower scores. It gets spanked by TimerTiming.)
6 – I’m not an engineer or developer. Do with this info as you see fit.

My results indicate that on a computer not experiencing issues these tweaks have no performance benefit.


Email from an expert ( he is a high-level software engineer):

– – – – Begin Email Conversation – – – –
Hi Eric,

I came across your Tweak site and saw some interesting tests regarding some tweaks. I noticed that one of the tweaks you tested was related to the PlatformClock.

bcdedit /set useplatformclock true
https://www.tweakhound.com/2014/01/30/timer-tweaks-benchmarked/

FWIW, I wanted to provide some additional insight as I’ve been involved with this since 2008 R2 when the Stamp Counter (TSC)was (Re)-introduced to Windows. The PlatformClock parameter / tweak is not meant to “improve” performance per say, it’s meant for stability and compatibility purposes which can (and will) improve performance over use of the TSC when enabled on / within the correct (Server) configuration environment.

You may recall that traditionally Windows (as do most x86 based OSs) function on the assumption / use of a Single Clock Domain for a given server, however with the ability of servers to be physically “scaled” (connected together) to create a larger “multinode” server (IE – 2, 3, 4, 5, 6, 7 or 8 node), we have a problem where each server has it’s own local “clock”. This creates a “multi-clock” domain which in and of itself is not bad, however, the “clocks” are Not synchronized across all nodes (unless Hardware clock synchronization is implemented which is very difficult/involved to implement) therefore there can be clock skew / drift between nodes & processors (other than Node 0) which can lead to thread scheduling and timing issues which at minimum can lead to performance problems in addition to other strange & bizarre behavior (poor network & disk performance, hang conditions, etc. etc. etc.).

The problem is encountered within a multi-clock domain beginning in 2008 R2 when the TSC was re-introduced as the default Clock (as mentioned above) Vs the use of the HPET (or Power Management (ACPI / PMclock)) Clock that prior OS versions used. The TSC is very fast and reliable but in using the TSC as the default Source Clock, the OS assumes a Single clock source. Depending upon which node the RDTSC thread executes, clock synchronization may / can become skewed resulting in thread scheduling problems and issues such as is mentioned above.

This said, to alleviate this potential problem on some older servers and certain multi-node scalable server platforms, “bcdedit /set useplatformclock true” should be implemented to circumvent these potential problems. Note: Even if the default system (platform) clock is HPET, ACPI / PMclock, etc, Windows must be explicitly told to use the Platform Clock else TSC will be used.

I wrote the following Knowledge Base (Retain Tip) article back in 2011 as a result of problems encountered when TSC was re-introduced in 2008 R2. Please note that these issues are not limited to IBM but can impact any vendor, system / server on which a multi-clock domain environment exists:
A Negative Ping Value, Hang Condition, Poor Performance or Machine Checks may be experienced on IBM System X Multinode Servers running Microsoft Windows 2008 R2 – IBM System x

The following is a good general article from MS related to Time Stamps and there are other on the web as well:
Acquiring high-resolution time stamps

Regards,
Ron Arndt

– – – – My Reply – – – –

Hi Ron,
Thank you very much for your highly informative email.
As far as it applies to desktops and gaming in particular what is your expert opinion of the tweak in question?
Also I would like to add what your email to the article, with your permission.
If you want to revise it in any way that is fine,
Thanks,
Eric Vaughan

– – – – His Reply – – – –

Hi Eric,

You may add the contents of the email and formatted as you see fit (IE some detail might cause confusion so polish / trim as needed) …
…
From a Desktop / Gaming standpoint, there should be no need to use the useplatformclock tweak within a Desktop / Laptop / Workstation environment unless there are known problems with the system using the TSC that could not be resolved within the vendor’s BIOS/UEFI code (which should be a known and documented issue within the vendor’s support forums, etc.).

In general, TSC is much faster for the OS and Apps to utilize than the other methods which should provide better overall performance by avoiding additional latencies due to additional overhead of the other clock counter methods.

This said, it is possible that depending upon the era of the HW platform (desktop, laptop, workstation, etc) that there may be some stability issues of some systems running Win7 / 2008 R2 (due to HW / FW and OS (TSC) implementations) being within a transitional period of time where a system may have better stability when using a system’s default (or configured platform clock within BIOS/UEFI) which is not the TSC (HPET, ACPI/PM_Timer) so stability is also a performance consideration.

In short, the TSC provides the lowest overhead which can and does translate to lower overhead / latency generally resulting in better performance and therefore the use of the TSC for Windows 2008 R2 (Windows 7) and later should remain as the default clock source unless known issues or problems are encountered.

Also, you might notice more of a difference in performance when testing single processor (socket) and single core processor packages Vs multi-socket / multi-core processor packages and configurations. I believe some of the more current desktops / workstations or Main Boards have more than one processor socket & core per processor which may be an interesting test behavior as we see the personal systems become more like the servers of a few years ago.

Regards,
Ron Arndt
– – – – End Email Conversation – – – –
 
– – – – Begin Email Conversation 2 – – – –
From JS:
I like your article on this very much, but you neglected to mention the aspect of overclocking and it’s effects on timing.
For example, if I overclock my FSB via SetFSB with the default timer, WinTimerTester shows that the longer I run it, the more out of sync QueryPerformanceCounter and GetTickCount get.
This causes severe problems in some games, notably “Battlefield: Bad Company 2”. I’m only able to play it for a few minutes before the game gets horribly out of sync and is unplayable.
If I set useplatformclock to true, I don’t have this problem. I get a near perfect 1.000 ratio in WinTimerTester while overclocked, and those games don’t get out of sync anymore.
More info here, http://forum.notebookreview.com/gaming-software-graphics-cards/569893-must-read-setfsb-o-c-game-problems-fixed.html
Video – Crysis 3 – 30% Framerate and Performance Boost, and FPS Cap Removal [120Hz.Net – HyperMatrix]
– – – – End Email Conversation 2 – – – –

Tagged With: How-To's, This Site, Windows 7, Windows 8

Primary Sidebar

Popular Posts

Tweaking Windows 10

Software I Use – 2021 Edition

Timer Tweaks Benchmarked

Win10 – Get Auto-Login Back

Recent Posts

  • Patch Tuesday
  • Monday News
  • BleachBit 5.0.0
  • Saturday News
  • Patch Tuesday
  • Weekend News
  • New Graphics Drivers
  • RIP Woody Leonhard
  • Patch Tuesday
  • Friday News
buywin10th2

Tags

  • Android
  • Backup
  • Beer
  • Computer Hardware
  • Computer News
  • Cool Tools
  • Freeware
  • How-To's
  • Linux
  • Off Topic
  • openSUSE
  • Playlists
  • Privacy
  • Security
  • Software
  • This Site
  • vacation
  • Veterans
  • Windows 10
  • Windows 11
  • Windows 7
  • Windows 8
  • Windows Vista
  • Windows XP

Catagories

  • Android
  • Backup
  • Beer
  • Computer Hardware
  • Computer News
  • Cool Tools
  • Freeware
  • Freeware Machines
  • How-To's
  • Linux
  • News From The Web
  • Off Topic
  • openSUSE
  • Privacy
  • Security
  • Software
  • Tweak Guides
  • Veterans
  • Windows
  • Windows 10
  • Windows 11
  • Windows 7
  • Windows 8
  • Windows Vista
  • Windows XP

TweakHound - Optimize Your Computing Experience! TweakHound - Optimize Your Computing Experience!

Copyright 2002-2025 by Eric Vaughan All material contain here is the property of the materials owner. Windows, Windows XP, Windows Vista, Windows Seven, Windows 8, Windows 10, Windows 11, Microsoft, and all associated logos are trademarks/property of Microsoft. You may not use or copy any material from tweakhound.com without expressed written permission. Hotlinking to any material within this site is forbidden. Privacy Policy