Python. Il tempo.

import time

t0_time = time.time()
t0_mono = time.monotonic()

while True:
	time.sleep(5)
	t1_mono = time.monotonic()
	t1_time = time.time()
	delta = (t1_time-t0_time)-(t1_mono-t0_mono)
	print(delta)
	print('\r')

Ci sono diversi modi per leggere il "tempo" in python.

time.time()

In Windows usa la funzione GetSystemTimeAsFileTime. Risoluzione 1-15 ms, accuratezza e drift "buoni" Sotto Linux... In pratica è l'orologio di sistema. Soggetto a cambiamenti.

time.monotonic()

In Windows usa la funzione GetTickCount64. Se si usa XP o inferiore, dopo 49 giorni si resetta. Risoluzione 15 ms, accuratezza e drift "buoni" Sotto Linux... Non soggetto a cambiamenti. Contano solo le differenze.

time.perf_counter()

In Windows usa la funzione QueryPerformanceCounter. Risoluzione <1 us, accuratezza "ottima", drift "scarso": può essere usata solo per "brevi" intervalli di tempo Sotto Linux... Non soggetto a cambiamenti. Contano solo le differenze.

L'ora del bios (RTC, basata su un oscillatore al quarzo) può essere letta ma non viene praticamente mai usata perché è la meno precisa (1 secondo) e accurata (alto drift). Il sistema operativo legge l'ora del bios all'avvio ma poi ha dei metodi propri e molto più accurati per mantenere lo scorrere del tempo corretto (tipicamente si basa sul clock della CPU).

Ecco i riferimenti: https://docs.python.org/3.4/library/time.html
https://www.python.org/dev/peps/pep-0418
http://www.luxford.com/high-performance-windows-timers