Skip to main content
00:00:00.00

Guida alla misurazione del tempo

Why measure time?

Il cronometro è uno strumento essenziale per misurare il tempo con precisione e si usa in molti ambiti: dallo sport e fitness alla cucina, fino alla gestione del tempo. Ti aiuta a capire quanto durano le singole attività e a ottimizzarle.

Applications in sports

In allenamento il cronometro misura i tempi sul giro, gli intervalli o i recuperi tra le serie. Gli atleti professionisti lo usano per analizzare le prestazioni e stabilire record personali. Puoi anche seguire i progressi nell'arco di settimane e mesi.

Productivity and time management

Il cronometro supporta tecniche di gestione del tempo come il Pomodoro, in cui si lavora per un tempo stabilito (es. 25 minuti) e poi si fa una pausa. Serve anche a capire quanto durano le singole attività, per pianificare meglio la giornata e stimare quanto riesci a fare.

Tips for effective use

Prima di iniziare, assicurati che il cronometro sia pronto e di essere in una posizione comoda. Durante l'esercizio tienilo in mano o posizionalo bene in vista. Registra i tempi sul giro per avere uno storico da analizzare. Usa la funzione giro per salvare i tempi intermedi senza fermare la misurazione principale.

Un cronometro che conta i propri tick perde un minuto ogni ora

Il modo ovvio di costruire un cronometro è sommare 100 ms a ogni tick del timer. Misurato su cinquanta tick, quell'approccio è rimasto indietro di 84 ms in cinque secondi: 1,68 ms persi per tick, che estrapolati fanno circa 60 secondi all'ora. L'errore va sempre nella stessa direzione, perché un tick può arrivare in ritardo ma mai in anticipo.

Come funziona

  • Misura intervalli trascorsi e registra i giri rispetto a un unico punto di riferimento.
  • Ricava il tempo trascorso da marche temporali anziché accumulare tick, ed è questo a mantenerne l'accuratezza.
  • Continua a funzionare correttamente quando la scheda passa in secondo piano, dove contare i tick fallisce di più.
sbagliato: trascorso += intervallo   a ogni tick
giusto:    trascorso = adesso − ora di avvio

il primo accumula ogni ritardo di schedulazione
il secondo rilegge l'orologio e non può proprio andare alla deriva

Esempio pratico

Cinquanta tick di un intervallo da 100 ms, misurati contro l'orologio di sistema.

  1. trascorso ideale: 5.000 ms
  2. trascorso reale: 5.084 ms
  3. deriva: 84 ms in cinque secondi
  4. per tick: 1,68 ms di ritardo
  5. estrapolato: circa 60 secondi all'ora

Un minuto all'ora, da un'implementazione che sembra corretta. Leggere invece l'orologio — trascorso uguale ad adesso meno avvio — produce la stessa visualizzazione senza errore accumulato, perché ogni fotogramma ricalcola dall'origine anziché sommare a un totale in corso.

Come leggere il risultato

  • Le callback del timer sono pianificate, non garantite. Il ritardo indicato è un minimo, quindi il browser può eseguire la callback in ritardo quando il thread principale è occupato, e ogni arrivo tardivo resta impresso in modo permanente in un totale che sa solo sommare.
  • Le schede in secondo piano peggiorano nettamente la cosa. I browser limitano i timer nelle schede nascoste, di solito a una volta al secondo o meno, quindi un cronometro che conta i tick lasciato in secondo piano può perdere minuti anziché secondi. Uno basato su marche temporali non ne risente: al ritorno legge semplicemente il tempo trascorso corretto.
  • Per misurare durate, preferisci un orologio monotono dove disponibile. L'orologio di sistema può saltare all'indietro quando l'ora viene corretta o scatta un cambio di ora legale, il che può produrre un tempo trascorso negativo da un calcolo per il resto corretto.
  • La precisione di visualizzazione non è la precisione di misura. Mostrare centesimi di secondo è facile; essere accurati al centesimo lungo un'ora richiede che l'aritmetica non accumuli nulla, e sono due proprietà scollegate.

Domande frequenti

Perché il mio timer va più lento di quello del telefono?
Quasi certamente sta contando i tick anziché leggere l'orologio. Ogni callback arriva con una frazione di ritardo, i ritardi si sommano e il totale resta indietro: misurato qui in 84 ms ogni cinque secondi. La macchina non ha nulla che non va; è l'aritmetica a perdere tempo per costruzione.
Continua a contare se cambio scheda?
Un cronometro basato su marche temporali sì, perché al ritorno ricalcola il tempo trascorso dall'avvio. Uno che conta i tick no: i browser limitano i timer nelle schede nascoste, quindi salta semplicemente dei tick e sottostima, a volte di minuti.