MeasureSleep
ใช้เพื่อวัดความแม่นยำของ Sleep(n) ตามค่าเริ่มต้น จะอยู่ในวงวนไม่สิ้นสุดในการวัดเดลต้าสลีป แต่คุณสามารถใช้อาร์กิวเมนต์ --samples
เพื่อรับตัววัดค่าเฉลี่ยและ STDEV
SetTimerResolution
ใช้เพื่อขอความละเอียดสูงขึ้นโดยการเรียก NtSetTimerResolution ตามตัวอย่างในการเริ่มต้นอินสแตนซ์ที่ซ่อนของโปรแกรมโดยอัตโนมัติเมื่อระบบเริ่มทำงานและเพิ่มความละเอียดเป็น 0.5ms ให้วางไบนารีไว้ที่ใดที่หนึ่งที่ปลอดภัย และสร้างงานที่กำหนดเวลาไว้ในตัวกำหนดเวลางาน (คำแนะนำ) โดยใช้คำสั่งด้านล่างเป็นตัวอย่าง
C:SetTimerResolution.exe --resolution 5000 --no-console
ตามความคิดเห็นในบทความ Great Rule Change บน Windows Server 2022+ และ Windows 11+ สามารถใช้คีย์รีจิสทรีด้านล่างเพื่อให้การร้องขอความละเอียดสูงขึ้นจะมีผลในระดับทั้งระบบ ไม่ใช่แค่กระบวนการเรียกเท่านั้น สิ่งนี้ควรใช้เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่องเท่านั้น
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Managerkernel]
"GlobalTimerResolutionRequests"=dword:00000001
สามารถใช้สคริปต์ micro-adjust-benchmark.ps1 เพื่อทำให้กระบวนการวางแผนอย่างแม่นยำเทียบกับความละเอียดได้โดยอัตโนมัติ สามารถมองเห็นผลลัพธ์ได้ด้วย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