Olá Amigos!
eu tenho que medir o tempo que um algoritmo demora pra realizar seus calculos, gostaria de saber se alguem sabe alguma classe java que tenha um método que possa me ajudar!
obrigado pela atenção
Olá Amigos!
eu tenho que medir o tempo que um algoritmo demora pra realizar seus calculos, gostaria de saber se alguem sabe alguma classe java que tenha um método que possa me ajudar!
obrigado pela atenção
exemplo:
long tempoInicial = System.currentTimeMillis();
// método que deve ser verificado o tempo de execução
calculo();
long tempoFinal = System.currentTimeMillis();
System.out.println( tempoFinal - tempoInicial );
A saída será em milesegundos;
Uma maneira mais sofisticada consiste na utilização de um profilador.
Se quer um como sugestão, experimente o do Netbeans.
o que seria um profilador?
Um profilador??? :shock:
Um profiler é um programa que se conecta na sua JVM e descobre várias informações úteis à análise de preformance, como por exemplo: Vazamento de memória, Utilização de CPU e memória, Tempo de execução por métodos, monitoramento de threads.
Confira mais aqui.
http://www.netbeans.org/products/profiler/index_pt_BR.html
Obs: Essa página ai já foi traduzida e revisada, mas ainda não atualizaram para versão revisada. :lol:
então gente… valeu pelas dicas, mas eu queria uma coisa mais simples mesmo, nao precisa ter precisão total.
Apenas para eu ter uma ideia do tempo que demora a execução do programa… algo como uma espécie de cronometro, no meio do algoritmo
na classe System não deu certo.
o metodo currentTimeMillis(), assim como o nanoTime(), não dão um tempo contínuo.
se eu faço o exemplo do marcuscruz, a subtraçao do inicio e do fim será sempre 0
Tenta algo assim, seguindo o conselho do Sombriks:
long start = System.currentTimeMillis();
/* Aqui vai o código cuja execução você que cronometrar */
long delay = System.currentTimeMillis() - start;
syso("Demorou " + delay + " milissegundos");
Divirta-se!
[quote=Mantu]Tenta algo assim, seguindo o conselho do Sombriks:
long start = System.currentTimeMillis();
/* Aqui vai o código cuja execução você que cronometrar */
long delay = System.currentTimeMillis() - start;
syso("Demorou " + delay + " milissegundos");
Divirta-se![/quote]
Apenas para te deixar avisado, dessa maneira vc estará medindo o tempo total da execução do seu programa + o tempo de espera no processador + tempo de escalonamento e outras coisas que envolvem SO.
Já fiz isso quando fazia universidade e depois de muito usar cheguei a conclusão de que o profiler era a melhor opção.
Eu também acho, mas como o OP pediu algo mais simples, taí… :lol: