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.
- trascorso ideale: 5.000 ms
- trascorso reale: 5.084 ms
- deriva: 84 ms in cinque secondi
- per tick: 1,68 ms di ritardo
- 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.