Bom pessoal eu vi uma vez um cara demostrando tipos de pesquisa e ele mostrava o tempo para cada algoritmo de pesquisa então eu queria saber se alguem sabe como é, ou melhor o que é que se usa? se tem algum método pronto em java?
Como calcular o tempo de execusão?
6 Respostas
simples. antes de executar o método que você quer fazer a análise, chame o método System.nanoTime(), e quando acabar o método chame novamente esse método, e diminua um valor do outro. Lembre que esse valor devolve o tempo em nanosegundos, então você vai ter que fazer a conversão para segundos manualmente.
Voce pode fazer a diferença do tempo ..
Por exemplo ...:
long tempInicial = System.currentTimeMillis();
for(int i = 0; i <= 10000; i++){
System.out.println("Esperando o tempo passar ..");
}
long tempFinal = System.currentTimeMillis();
long dif = (tempFinal - tempInicial);
System.out.println(String.format("%02d segundos e %02d milisegundos", dif/60, dif%60));
Assim vc marca o tempo que inicia o processo ... depois marca o tempo final ... depois só faz a diferença do tempo .
Ok
:P
Falowww
Valew galera problema resolvido…
Maluco, se voce usar Jmeter >> http://jakarta.apache.org/jmeter >> mostra tudo o que vc imagina e um pouco mais… super fanstastico… by the way.
Voce pode fazer a diferença do tempo .. Por exemplo ...:long tempInicial = System.currentTimeMillis(); for(int i = 0; i <= 10000; i++){ System.out.println("Esperando o tempo passar .."); } long tempFinal = System.currentTimeMillis(); long dif = (tempFinal - tempInicial); System.out.println(String.format("%02d segundos e %02d milisegundos", dif/60, dif%60));Assim vc marca o tempo que inicia o processo ... depois marca o tempo final ... depois só faz a diferença do tempo .
Ok
:P
Falowww
Pesquisando sobre essa questão, achei o seu exemplo e dei uma melhorada, o calculo correto era dividir por 1000. e utilizei classe estatica.
package util;
import view.Main;
public class ContadorTempo {
public static long tempInicial;
public static long tempFinal;
public static void comecar(){
tempInicial = System.currentTimeMillis();
}
public static void parar(){
tempFinal = System.currentTimeMillis();
long dif = (tempFinal - tempInicial);
//status é um JLabel q tenho na minha aplicacao.
Main.status.setText(String.format("Tempo de execução: %02d segundos e %02d milisegundos", dif/1000, dif%1000));
}
}
depois é só chamar ContadorTempo.comecar(); no inicio e ContadorTempo.parar(); no final.
bacana esse metodo!