MeasureSleep
digunakan untuk mengukur ketepatan Sleep(n). Secara default, ia berada dalam loop tak terbatas yang mengukur delta tidur, namun Anda dapat menggunakan argumen --samples
untuk mendapatkan metrik rata-rata dan STDEV.
SetTimerResolution
digunakan untuk meminta resolusi yang lebih tinggi dengan memanggil NtSetTimerResolution. Sebagai contoh untuk memulai program tersembunyi secara otomatis ketika sistem dimulai dan menaikkan resolusi menjadi 0,5 ms, letakkan biner di tempat yang aman dan buat tugas terjadwal di penjadwal tugas (instruksi) dengan perintah di bawah ini sebagai contoh.
C:SetTimerResolution.exe --resolution 5000 --no-console
Menurut komentar di artikel Perubahan Aturan Besar, di Windows Server 2022+ dan Windows 11+, kunci registri di bawah ini juga dapat digunakan sehingga meminta resolusi yang lebih tinggi akan efektif di tingkat sistem, bukan hanya pada proses panggilan saja. Ini hanya boleh digunakan untuk tujuan debugging.
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Managerkernel]
"GlobalTimerResolutionRequests"=dword:00000001
Skrip micro-adjust-benchmark.ps1 dapat digunakan untuk mengotomatisasi proses memplot presisi terhadap resolusi. Hasilnya dapat divisualisasikan dengan chart-studio.plotly.com.
git clone https: // github.com / valleyofdoom / TimerResolution.git
cd .TimerResolution
# x64
$ env: VCPKG_DEFAULT_TRIPLET = " x64-windows "
# install dependencies
vcpkg install
# replace "SetTimerResolution" with "MeasureSleep" if desired
MSBuild.exe .TimerResolution.sln - p:Configuration = Release - p:Platform = x64 - t:SetTimerResolution