Existe um cronômetro em Java? No google, só encontro códigos de cronômetros que não funcionam - eles sempre retornam 0 milissegundos.
Este código que encontrei não funciona, mas não vejo por quê.
public class StopWatch {
private long startTime = 0;
private long stopTime = 0;
private boolean running = false;
public void start() {
this.startTime = System.currentTimeMillis();
this.running = true;
}
public void stop() {
this.stopTime = System.currentTimeMillis();
this.running = false;
}
//elaspsed time in milliseconds
public long getElapsedTime() {
long elapsed;
if (running) {
elapsed = (System.currentTimeMillis() - startTime);
} else {
elapsed = (stopTime - startTime);
}
return elapsed;
}
//elaspsed time in seconds
public long getElapsedTimeSecs() {
long elapsed;
if (running) {
elapsed = ((System.currentTimeMillis() - startTime) / 1000);
} else {
elapsed = ((stopTime - startTime) / 1000);
}
return elapsed;
}
}
currentTimeMillis()
para produção, pois está vinculado à data / hora do sistema e não é garantido que seja monótono (por exemplo, você pode obter o tempo decorrido negativo). Para medir o tempo de usonanoTime()
- é garantido ser monótono e destinado exatamente para fins de medição. Consulte docs.oracle.com/javase/8/docs/api/java/lang/…Respostas:
Você encontrará um em
http://commons.apache.org/lang/
É chamado
Mas faz praticamente o mesmo que o seu. Se você deseja mais precisão, use
Veja também esta questão aqui:
Sobrecarga de medição de tempo em Java
fonte
Use a
Stopwatch
classe de Guava .fonte
getStartTime()
, falta de apacheisRunning()
ahhhhAgora você pode tentar algo como:
A saída está em ISO 8601.
fonte
Spring fornece uma
org.springframework.util.StopWatch
classe elegante (módulo spring-core).fonte
Use
System.currentTimeMillis()
para obter a hora de início e a hora de término e calcular a diferença.Mais informações neste tutorial
fonte
O código não funciona porque a variável decorrida em
getElapsedTimeSecs()
não é umfloat
oudouble
.fonte
Não há utilitário Stopwatch embutido, mas a partir do JSR-310 (Java 8 Time) você pode fazer isso de forma simples.
Não fiz o benchmarking correto, mas acho que usar o cronômetro do Guava é mais eficaz.
fonte
experimente http://introcs.cs.princeton.edu/java/stdlib/Stopwatch.java.html
isso é muito facil
Esta classe faz parte do stdlib.jar
fonte
Classe de cronômetro simples e pronta para usar:
Uso:
fonte
use: com.google.common.base.Stopwatch, é simples e fácil.
exemplo:
esta tarefa levou 112 moinhos
fonte
tente isso
fonte
Experimente isto:
Usar:
fonte
Experimente isso.
Uso:
Console:
fonte
currentTimeMillis()
está vinculado à data / hora do sistema e não é garantido que seja monótono (por exemplo, você pode obter o tempo decorrido negativo).System.nanoTime()
para obter sempre os resultados corretos.Performetrics oferece uma aula de cronômetro conveniente, do jeito que você precisa. Ele pode medir o tempo do relógio de parede e muito mais: ele também mede o tempo da CPU (hora do usuário e hora do sistema) se necessário. É pequeno, gratuito e você pode fazer o download no Maven Central. Mais informações e exemplos podem ser encontrados aqui: https://obvj.net/performetrics
Você pode converter as métricas para qualquer unidade de tempo (nanossegundos, milissegundos, segundos, etc ...)
PS: Eu sou o autor da ferramenta.
fonte
Você pode encontrar um conveniente aqui:
https://github.com/varra4u/utils4j/blob/master/src/main/java/com/varra/util/StopWatch.java
Uso:
fonte
Experimente isso.
Solução Java Cronômetro totalmente funcional
Aqui você obterá uma solução totalmente funcional.
Apenas um snippet da solução vinculada acima:
Você pode criar uma classe como o código abaixo e usar o método start e stop desta classe antes e depois da seção de código, você deseja medir o tempo gasto.
}
Obrigado.
fonte