Depende del tipo de reloj y su sistema operativo y el hardware, ya sea que se pueda obtener una precisión de nanosegundos de en total. Del time
module documentation:
La precisión de las diversas funciones en tiempo real puede ser menor que la sugerida por las unidades en las que se expresa su valor o argumento. P.ej. en la mayoría de los sistemas Unix, el reloj "marca" solo 50 o 100 veces por segundo.
En Python 3, el módulo time
le da acceso a 5 tipos diferentes de reloj, cada uno con propiedades diferentes; algunos de estos pueden ofrecen sincronización de precisión de nanosegundos. . Utilice la time.get_clock_info()
function para ver cuáles son las características que ofrece cada reloj y qué tiempo de la precisión se informa en
En mi OS X 10.11 ordenador portátil, las funciones disponibles son:
>>> for name in ('clock', 'monotonic', 'perf_counter', 'process_time', 'time'):
... print(name, time.get_clock_info(name), sep=': ')
...
clock: namespace(adjustable=False, implementation='clock()', monotonic=True, resolution=1e-06)
monotonic: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)
perf_counter: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)
process_time: namespace(adjustable=False, implementation='getrusage(RUSAGE_SELF)', monotonic=True, resolution=1e-06)
time: namespace(adjustable=True, implementation='gettimeofday()', monotonic=False, resolution=1e-06)
así que usar las time.monotonic()
o time.perf_counter()
funciones teóricamente dame una resolución de nanosegundos. Ninguno de los dos relojes me da tiempo de pared, solo el tiempo transcurrido; los valores son por lo demás arbitrarios. Sin embargo, son útiles para medir cuánto tiempo tomó algo.
@GregS: persistencia viene con la edad :) – tzot