time.monotonic e monotonic_ns em Python
Se você precisa calcular tempo, usar funções que dependem do relógio do sistema pode deixar o seu código inconsistente. Entenda os motivos para usar monotonic (em segundos ou nanossegundos).
Neste vídeo, vamos aprender a não perder tempo por conta de atualizações no relógio do sistema operacional usando time.monotonic e time.monotonic_ns no Python.
Também vamos calcular diferenças entre um loop e outro para garantir sempre um segundo preciso para cada iteração.
O problema de um “clock wall” ou relógio de parede (ou o relógio do sistema mesmo), é que podemos perder a conta do tempo devido a correções que ocorrem automaticamente via servidores NTP.
Até mesmo a mudança de horário de verão, ou coisas do tipo, podem afetar o seu código que depende do tempo.
Como nessa playlist estamos criando “timers”, nosso código inteiro é baseado no tempo. Por isso, não podemos nos dar ao luxo de perder nenhum nanossegundo sequer.
Além de usar time.monotonic ou time.monotonic_ns, também vamos calcular a diferença que a Thread leva para acordar após um “wait” ou “time.sleep”.
Isso vai fazer você perceber que, “um segundo” não é “um segundo” de verdade no sleep. É só o tempo em que você espera que o SO acorde a sua thread.
Para corrigir o problema, vamos calcular a diferença entre um loop e outro. Assim, podemos descontar o tempo adicional deixando nosso timer muito mais preciso.
Vídeo
Te vejo no próximo vídeo (cortou essa frase no final do vídeo).

