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: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)