TimerSet is an utility to check and modify the Windows Timer Resolution.
Since v0.3.0: Also includes a feature to periodically empty the Windows StandbyList, notorious for causing stutters when gaming on Windows 10 systems after Windows 10 version 1809.
PSA: Please be aware that raising your Timer Resolution on a laptop has huge effects on battery life and is generally a bad idea
The program should be run from an elevated (ie. cmd => run as administrator) terminal prompt.
Obviously, it only works on Windows. Confirmed to work on Windows 10 2004, but should run on pretty much any version of Windows since the used APIs are so old.
timerset 0.4.1
Mathieu Amiot <amiot.mathieu@gmail.com>
TimerSet allows you to change your NT Kernel system timer Also allows you to monitor Windows Standby
List and clean it up when needed
USAGE:
timerset.exe [OPTIONS]
OPTIONS:
--cscm <CLEAR_STANDBY_CACHED_MEM>
Cached memory threshold where the Windows Standby List will be cleared (in MB) Defaults
to 1024MB (1GB)
[default: 1024]
--csfm <CLEAR_STANDBY_FREE_MEM>
Free memory threshold where the Windows Standby List will be cleared (in MB) Defaults to
1024MB (1GB)
[default: 1024]
-h, --help
Print help information
-i, --install
Installs TimerSet to your system and runs it on startup
--islc
Enables Windows Standby List periodic cleaning. It is akin to how ISLC by Wagnard works
--islc-timer <CLEAN_STANDBY_LIST_POLL_FREQ>
Standby List anti-kernel DOS throttle timer It exists because
CreateMemoryResourceNotification can trigger LowMemoryResourceNotifications thousands of
times per second when they happen (i.e. every system page allocation in a high memory
pressure situation, often 4KB) resulting in the memory list cleaning paralyzing the
system with thousands of tries per second
Defaults to 10 seconds which should be enough for most systems without impacting
performance.
[default: 10]
-p, --pretend
Shows the actions taken but do not modify anything on the system; Also known as a dry
run
-t, --timer <TIMER>
Allows to set a custom timer value in μs. Will be clamped between the bounds of allowed
timer values. Also note that sometimes, setting high timer values are rejected by the
system and will be lowered down depending on which clock source your system is using
(TSC tends to lower values by ~5μs, HPET does not for instance)
-u, --uninstall
Uninstalls TimerSet from your system
-v, --values
Prints the possible timer value range for your system. Please note that it can depend on
many factors such as HPET or dynamic/synthetic timers enabled or disabled
-V, --version
Print version information
timerset.exe --install
timerset.exe --uninstall
timerset.exe --install --timer 2000
timerset.exe --install --islc
timerset.exe --values
Requirements:
- Rust
- Windows 10 SDK
cargo build --release
and you should be good!
Mathieu "@OtaK_" Amiot