Como calcular o tempo de execusão?

6 respostas
J

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?

6 Respostas

andreiribas

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.

silva.fernandes

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

J

Valew galera problema resolvido…

L

Maluco, se voce usar Jmeter &gt&gt http://jakarta.apache.org/jmeter &gt&gt mostra tudo o que vc imagina e um pouco mais… super fanstastico… by the way.

gdonadel
silva.fernandes:
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 é  chamar ContadorTempo.comecar(); no inicio e ContadorTempo.parar(); no final.
Fawkes

bacana esse metodo!

Criado 22 de maio de 2007
Ultima resposta 9 de mai. de 2012
Respostas 6
Participantes 6