BrowserTools
Publicidade
Início / Diversos / Cronómetro e temporizador

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?
Sim. O tempo decorrido é calculado a partir de uma marca temporal de início armazenada usando performance.now(), e não a partir de um contador que aumenta a cada tique. Mesmo que o navegador limite a execução de JavaScript no separador em segundo plano, o temporizador mostrará o tempo decorrido correto quando voltares a ele.
Qual é a precisão do temporizador?
O temporizador mostra o tempo ao centésimo de segundo (resolução de 10 ms). Os navegadores limitam deliberadamente a resolução do performance.now() a cerca de 1 ms em contextos padrão por razões de segurança, por isso os valores mostrados são precisos até alguns milissegundos. Isto é mais do que suficiente para casos de uso de desporto, culinária e produtividade.
Como funciona o alarme sonoro?
O alarme da contagem decrescente usa a Web Audio API para sintetizar um tom curto diretamente no navegador, sem descarregar qualquer ficheiro de áudio. Para o alarme tocar, o volume do sistema tem de estar ligado. Alguns navegadores também exigem que tenhas interagido com a página (que tenhas clicado ou tocado em algo) antes de permitirem a reprodução de áudio, como medida contra o abuso da reprodução automática.
Posso registar tempos de volta?
Sim. Ao carregar no botão Volta durante uma sessão de cronómetro, regista-se o tempo decorrido atual como um parcial. Cada volta seguinte regista tanto o tempo acumulado como o tempo desse intervalo específico. Podes copiar todos os tempos de volta para a área de transferência com o botão Copiar e colá-los numa folha de cálculo ou numa aplicação de notas.
O que é a Técnica Pomodoro e como pode este temporizador ajudar?
A Técnica Pomodoro, desenvolvida por Francesco Cirillo no final da década de 1980, divide o trabalho em intervalos concentrados de 25 minutos (chamados Pomodoros) separados por pausas de 5 minutos, com uma pausa mais longa de 15-30 minutos após cada quatro intervalos. O temporizador de contagem decrescente desta página é ideal para as sessões Pomodoro: define-o para 25 minutos, concentra-te até o alarme tocar e depois repõe-no para 5 minutos para uma pausa.
Qual é a duração máxima da contagem decrescente?
O temporizador de contagem decrescente aceita horas, minutos e segundos, por isso podes definir durações que vão de alguns segundos até muitas horas. Não há um limite superior imposto. Contudo, como o estado é mantido na memória do navegador, fechar ou recarregar o separador irá repor o temporizador.
Porque é que o performance.now() tem precisão reduzida nos navegadores?
Os temporizadores de alta resolução podem ser explorados em ataques de canal lateral do tipo Spectre, em que um atacante usa medições temporais precisas para inferir o conteúdo de uma memória que não deveria conseguir ler. Para mitigar isto, os navegadores reduziram a resolução do performance.now() depois de a vulnerabilidade Spectre ter sido divulgada em 2018. A resolução atual de cerca de 1 ms é um compromisso de segurança deliberado.
Posso usá-lo para cronometrar eventos desportivos como corrida ou natação?
Sim, com a ressalva de que os temporizadores de navegador não estão homologados para a cronometragem oficial de competições. Para o treino pessoal, as sessões com treinador e os eventos informais, a precisão na ordem dos milissegundos é mais do que adequada. Regista os parciais com o botão Volta e copia a tabela completa de tempos quando a sessão terminar.
A página precisa de ligação à internet depois de carregada?
Não. Depois de a página ter carregado no teu navegador, o cronómetro e o temporizador funcionam totalmente offline. Não são feitos pedidos de rede durante a cronometragem. Isto significa que a ferramenta funciona de forma fiável mesmo em locais com má conectividade, como ginásios, recintos desportivos ao ar livre ou cozinhas longe do router.
Como se compara com uma aplicação de cronómetro dedicada?
Um cronómetro de hardware dedicado ou uma aplicação móvel nativa podem oferecer uma otimização de bateria ligeiramente melhor e guardar o histórico de sessões em armazenamento persistente. Esta ferramenta de navegador tem a vantagem de ser acessível de imediato em qualquer dispositivo sem instalação, e a função de exportação de voltas facilita transferir os tempos para uma folha de cálculo ou um registo de treino.

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.

Publicidade
Publicidade
Publicidade