Cronómetro e temporizador
Cronómetro online com tempos de volta e temporizador de contagem decrescente com alarme sonoro, tudo no teu navegador.
A carregar Cronómetro e temporizador… Se nada acontecer, ativa o JavaScript.
A medição do tempo é uma das mais antigas buscas tecnológicas da humanidade, e o cronómetro é um dos seus instrumentos mais refinados. Um cronómetro mede o tempo decorrido a partir de um ponto de partida definido até um ponto de paragem definido, com a precisão necessária para distinguir frações de segundo. Os temporizadores digitais modernos vão mais longe, registando tempos de volta intermédios para que possas analisar a decomposição de uma atividade longa nos seus intervalos componentes. Um temporizador de contagem decrescente funciona no sentido inverso: conta para trás a partir de uma duração definida e avisa quando o tempo esgota. Ambos os instrumentos são essenciais em contextos onde o tempo é a principal variável a gerir, desde o treino desportivo à culinária, desde os testes de desempenho de software à técnica de produtividade Pomodoro.
Perguntas frequentes
O temporizador continua a correr se mudar para outro separador?
Qual é a precisão do temporizador?
Como funciona o alarme sonoro?
Posso registar tempos de volta?
O que é a Técnica Pomodoro e como pode este temporizador ajudar?
Qual é a duração máxima da contagem decrescente?
Porque é que o performance.now() tem precisão reduzida nos navegadores?
Posso usá-lo para cronometrar eventos desportivos como corrida ou natação?
A página precisa de ligação à internet depois de carregada?
Como se compara com uma aplicação de cronómetro dedicada?
Sobre Cronómetro e temporizador
A variedade de pessoas que usam cronómetros e temporizadores de contagem decrescente todos os dias é surpreendentemente vasta. Treinadores e atletas usam a cronometragem de voltas para analisar os parciais de corrida e os intervalos de treino. Cozinheiros e pasteleiros recorrem a temporizadores de contagem decrescente para não cozinharem em excesso. Os professores usam temporizadores para gerir as atividades da aula e a duração dos testes. Os programadores de software e os engenheiros de controlo de qualidade cronometram a execução do código e a capacidade de resposta da interface. Os oradores ensaiam com uma contagem decrescente para não ultrapassarem o tempo que lhes foi atribuído. Os trabalhadores do conhecimento que praticam a Técnica Pomodoro alternam sessões de trabalho concentrado de 25 minutos com pausas de 5 minutos, ambas cronometradas com precisão. A necessidade de medir ou limitar um intervalo de tempo é tão universal que todos os smartphones, smartwatches e colunas inteligentes vêm com estas funções integradas.
Esta ferramenta de navegador implementa tanto um cronómetro como um temporizador de contagem decrescente usando a Web API performance.now() para a cronometragem. Ao contrário do setInterval do JavaScript, que pode desviar-se quando um separador do navegador está limitado ou o sistema está sob carga, performance.now() devolve uma marca temporal de alta resolução calculada a partir do relógio do sistema. O tempo decorrido real é calculado como a diferença entre a marca temporal de início e a marca temporal atual, o que significa que a limitação dos separadores em segundo plano não faz o temporizador perder tempo. O alarme sonoro é gerado com a Web Audio API, que sintetiza um tom diretamente no navegador sem ser preciso carregar qualquer ficheiro de áudio. Todo o estado é mantido em memória; fechar ou recarregar o separador repõe tudo.
Uma nota sobre a precisão de cronometragem do navegador: por razões de privacidade e segurança, os navegadores reduzem deliberadamente a resolução do performance.now() para cerca de 1 milissegundo na maioria dos contextos (e para 5 milissegundos ou mais em iframes de origem cruzada). Isto é suficiente para a esmagadora maioria das tarefas de cronometragem (culinária, exercício, produtividade), mas não é adequado para tarefas de benchmarking que exijam precisão de microssegundos, para as quais precisarias de um temporizador de hardware dedicado ou de uma ferramenta de análise de desempenho especializada.
Dos relógios de sol ao performance.now(): 4000 anos de tecnologia de medição do tempo
A história do cronómetro começa muito antes da eletricidade. Os primeiros cronómetros mecânicos eram relógios de bolso modificados com um ponteiro de segundos que podia ser iniciado e parado de forma independente do movimento principal. A invenção crucial foi o mecanismo de segundos divididos, patenteado em 1862, que permitia iniciar dois ponteiros independentes em conjunto e pará-los separadamente, essencial para cronometrar vários concorrentes numa corrida. Mas o marco mais significativo foi a patente de Adolphe Nicole, de 1844, para o primeiro verdadeiro cronómetro com função de reposição: um mecanismo que conseguia repor o ponteiro de segundos a zero com um único toque na coroa. Nicole era um relojoeiro suíço a trabalhar em Londres, e a sua invenção tornou-se o desenho padrão dos relógios cronógrafos que perdura até hoje. Os primeiros cronómetros mecânicos tinham uma precisão de cerca de 1/5 de segundo, muito menos precisos do que um temporizador de navegador moderno, mas revolucionários para os juízes desportivos do século XIX.
A cronometragem eletrónica transformou o desporto profissional no século XX. Os Jogos Olímpicos de Los Angeles de 1932 foram os primeiros a usar tecnologia de photo finish, combinando uma câmara com um temporizador eletrónico para resolver disputas invisíveis ao olho humano. Por volta da década de 1960, a empresa suíça Longines fornecia cronometragem eletrónica com precisão de 1/100 de segundo para os Jogos Olímpicos. Os cronómetros digitais para consumidores surgiram na década de 1970, a par da revolução do relógio de quartzo; o primeiro relógio digital Casio com função de cronómetro (o Casio Casiotron) foi lançado em 1974. Estes osciladores de quartzo a pilhas conseguiam manter as horas com uma precisão de alguns segundos por ano, muito superior aos relógios mecânicos de mola que substituíram.
Os navegadores implementam a cronometragem de alta resolução através da Performance API, em concreto o método performance.now(), que foi padronizado pelo W3C em 2012. Ao contrário do antigo método Date.now(), que devolve uma marca temporal Unix em milissegundos inteiros e pode saltar para trás se o relógio do sistema for ajustado, performance.now() devolve um número de vírgula flutuante que representa o tempo decorrido desde a origem temporal da página, com resolução inferior ao milissegundo. O método é monotonicamente crescente, nunca recua, o que o torna ideal para medir durações. A sua precisão foi deliberadamente reduzida de microssegundos para cerca de 1 milissegundo após a divulgação da vulnerabilidade de CPU Spectre em janeiro de 2018, já que os temporizadores de alta resolução são um componente necessário de certos ataques de canal lateral. O compromisso entre a precisão de cronometragem e a segurança é um exemplo fascinante de como as vulnerabilidades de hardware de baixo nível se podem propagar até às API de navegador de que dependem as aplicações web do dia a dia.