Galera eu fiz um teste de calculo de tempo e queria saber se está correto:
publicstaticvoidmain(String[]args){longinicio=System.currentTimeMillis();//repetir o metodo 1000 vezesfor(inti=1;i<1000;i++){//verifica os primos de 1 até 1000verificarPrimos(1000);}longfim=System.currentTimeMillis();//dividi por 1000 pq repeti 1000 vezes o metodoSystem.out.println(((fim-inicio)/1000));}
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.
K
kleberdamasco
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.
lucasirc
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
RafaelCassau
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.
ViniGodoy
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.
rnldfll
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,