Análise Empírica

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/ )