Alguém já fez alguma análise empírica de um programa???
Quero contar o tempo do método resul
[code] start=new Date().getTime();
boolean resul=retang.LineClip(retang.xstart,retang.ystart,retang.xend,retang.yend,retang.xleft,retang.xright,retang.ybottom,retang.ytop);
try {
Thread.sleep(100);
}
catch (InterruptedException ie) {
System.out.println("ERRO no sleep!");
}
end=new Date().getTime();
System.out.println(end-start);[/code]
Porém o método executa mto rapidamente e tive que colocar esse sleep.
Está certo o código???
Acho que para métodos muito rápidos fica difícil fazer a análise empírica né?
Ah, você quer medir o tempo, certo?
a) Se você sabe que a tal rotina leva mais de 10 ms para ser executada, você pode usar algo como
long t = System.currentTimeMillis();
chame_sua_rotina();
t = System.currentTimeMillis() - t;
System.out.println ("Levou " + t + " ms");
b) Se ela levar menos tempo que isso, System.currentTimeMillis() não é suficientemente precisa (culpa normalmente do sistema operacional, não do Java). Você pode chamar a sua rotina 1000 vezes, por exemplo, e dividir o tempo por 1000.
long t = System.currentTimeMillis();
for (int i = 0; i < 1000; ++i) {
chame_sua_rotina();
}
t = System.currentTimeMillis() - t;
System.out.println ("Levou " + (t / 1000.0) + " ms em média");
c) Obviamente o que estou falando é uma simplificação grosseira da realidade (há a compilação just-in-time, que pode levar algum tempo, e outras coisas mais doidas que podem ocorrer). Você precisa ver algum site como o http://www.javaperformancetuning.com/ )