Duvida em calculo de tempo

Galera eu fiz um teste de calculo de tempo e queria saber se está correto:

public static void main(String[] args){  
		long inicio = System.currentTimeMillis();
	
		//repetir o metodo 1000 vezes
		for(int i = 1; i<1000;i++){
			//verifica os primos de 1 até 1000
			verificarPrimos(1000);
		}
		
		long fim = System.currentTimeMillis();
		
		//dividi por 1000 pq repeti 1000 vezes o metodo
		System.out.println(((fim-inicio)/1000));
	}

O resultado foi = 8;

Eae ta certo isso?

Bom dia, olhando seu código não vi nada de errado cara, até pq antes do for vc pegou o tempo em milisegundos após o termino do for tbm, fez o calculo, não tem segredo é isso mesmo.

fim - inicio vai te retornar o tempo em milisegundos que ele levou para fazer
a operação toda, e vc vai dividir por mil para ter o resultado em segundos
e não porque vc fez o loop de 1000 vezes.

concordo com RafaelCassau,

//verifica os primos de 1 até 1000  
 verificarPrimos(1000); 

não seria:

//verifica os primos de 1 até 1000  
 verificarPrimos(i); 

e também

o que ficou confuso pra min foi só a unidade, foi 8 o que?

“8 verificações por milésimo de segundo” <-- velocidade
ou
“8 segundos (8000 milesimos de segundo / 1000) para realizar 1000 verificações” <-- tempo

realmente o que está errado é a chamada do método segundo meu entendimento do negocio, ao invés de passar 1000, se passaria i, até pq não faz sentido vc verificar 1000 vezes se o número 1000 é primo, pois o único número par primo existente é o 2, por isso se faz o for antes do método que é para passar dinamicamente através de i os valores a serem verificados, para mim só faria sentido o parâmetro 1000 na chamada do método caso esse parâmetro representasse a quantidade de números a ser testada iniciando-se do 1 ate a quantidade passada, nesse caso o 1000, porem para que isso faça sentido o for deveria ser executado dentro do método, sendo assim o método só seria chamado uma vez não necessitando estar dentro de um for.

O 8 significa que seu método levou 8 segundos para executar.

Põe um “.0” depois do 1000:

System.out.println(((fim-inicio)/1000.0));  

Para ver as casas decimais.

Detalhe: Você só repetiu 999 vezes o método.

Eu fiquei sem entrar aqui por um tempo e agora q vi as suas respostas,

  • A intençao era repetir o metodo 1000 vezes pq disseram em outros topicos que executando uma vez apenas o calculo nao seria mto legal,
  • o resultado foi 8 milisegundos por cada execuçao, ou 8 segundos em todas(foi o que eu achei q seria),
  • as minhas duvidas eram se esse calculo ta certo, se eu posso dizer q meu programa leva 8 milisegundos para executar,

vlw pessoal :slight_smile: