Calcular o tempo de processamento

4 respostas
C

Galera, estou armazenando valores no meu vetor e preciso calcular quanto tempo demorou pra armazenar.
Meu código está assim:

import java.util.Random;

public class Vetores {

	private int valor[] = new int[50];
	private int posicao = 0;
	private int numerosRepetidos = 0;

	public void armazenaValor() {
		// variavel que gera numero aleatório
		Random aleatorio = new Random();
		// laço que percorre 50.000 vezes
		for (int i = 0; i <= 200; i++) {
			int valorInserir = aleatorio.nextInt(10);
			for (int j = 0; j <= posicao; j++) {
				if (j == i - numerosRepetidos) {
					valor[posicao] = valorInserir;
					System.out.println("insere " + valorInserir);
					posicao++;
					break;
				} else if (valor[j] == valorInserir) {
					numerosRepetidos++;
					System.out.println("não insere " + valorInserir);
					break;
				}
			}
		}
		imprime();
	}
	
	private void imprime(){
		System.out.println("------------------ IMPRIME -----------------");
		for(int x=0; x<posicao; x++){
			System.out.println("valor "+x+" = "+valor[x]);
		}
		
	}
}

Alguém sabe como faço pra calcular o tempo de processamento?

4 Respostas

R

Faz algo assim, no inicio no inicio do for coloca: long tempoInicial = System.currentTimeMillis();
No final, quando sair do for, coloca: long tempoFinal = System.currentTimeMillis();

Depois pra mostrar o tempo:

System.out.println("Tempo em millis: " + (tempoFinal - tempoInicial) );

Não sei se é a melhor maneira, mas é uma.

V

Tire também os system.out.println de dentro do laço.
Senão eles com certeza irão gerar uma distorção enorme em seu resultado.

Você que medir o tempo que leva para inserir, ou o tempo que leva para inserir e imprimir?

C

Funcionou aqui tbm Romarcio.
Mas se alguém tiver mais sugestões, fiquem a vontade.

Eu vou tirar o system.out Vini.
Só estava usando para testar mesmo.

Eu preciso calcular o tempo que insere e depois imprime todos os valores do vetor.

M

Uma alternativa melhor é usar Profilers.

Criado 5 de outubro de 2010
Ultima resposta 5 de out. de 2010
Respostas 4
Participantes 4