Higher-precision timing in Python
moves, metrics, and microseconds
cubing 🤝 computing
Agriya Khetarpal
QShare, Camp Quansight
08 October 2025
Operating system timing characteristics: Windows
BOOL QueryPerformanceCounter(
[out] LARGE_INTEGER *lpPerformanceCount
);
Sub-microsecond resolution
Based on hardware timers (TSC, ACPI, or HPET), depending on your computer's processor and its architecture
Operating system timing characteristics: Linux
clock_gettime(CLOCK_MONOTONIC) via vDSO (virtual dynamic shared object), a small shared library used by the Linux kernel as an abstraction between user-space applications and kernel's syscalls
Nanosecond precision (if your hardware timer is stable)
Operating system timing characteristics: macOS (Apple Silicon)
mach_absolute_time(), a monotonic hardware timer
Nanosecond resolution, via CNTVCT (Counter-timer Virtual Count) registers
accuracy vs precision
time.time()
import time
def measure_solve():
start = time.time()
# solve
end = time.time()
elapsed_time = end - start
return elapsed_time
time.perf_counter()
import time
def measure_solve():
start = time.perf_counter()
# solve
end = time.perf_counter()
elapsed = end - start
return elapsed
time.perf_counter_ns()
import time
def measure_solve():
start = time.time()
# solve
end = time.time()
elapsed_time = end - start
return elapsed_time
This is the most precise one out there!
uvx cubetimer
pipx run cubetimerFuture improvements?

Thank you!
Higher precision timing in Python and a speedcubing Textual app
By Agriya Khetarpal
Higher precision timing in Python and a speedcubing Textual app
- 54