Medição de tempo de forma confiável

Saudações.
Exise alguma forma de medição de tempo semelhante ao C (abaixo) ? Ou alguma outra dica que seja tão confiável quanto e/ou mais ?

clock_gettime(CLOCK_MONOTONIC, …)

att,
Fábio

Você quer medir o tempo de quê exatamente?

Se você disser o que quer fazer fica mais fácil de alguém conseguir ajudar, dado que nem todos no fórum conhecem com profundidade a linguagem C.

Saudações.

Para medir o tempo de uma função, operação e/ou ação dentro de um determinado trecho de programa. Abaixo, de forma genérica, como seria em C. Mas em resumo, a ideia é descobrir se existe alguma forma de medir em JAVA da maneira mais confiável possível.

t_inicial = clock_gettime(CLOCK_MONOTONIC, …)

ações_a_serem_medidas

t_final = clock_gettime(CLOCK_MONOTONIC, …)

t_total = t_final - t_inicial

att,
Fábio

Uma das formas normalmente utilizadas na linguagem é algo mais ou menos assim:

public void myMethod() {
    long start = System.currentTimeMillis();

    // Other operations

    long end = System.currentTimeMillis();
    long total = end - start;
}
1 curtida

Se quiser mais precisão, pode usar System.nanoTime():

long inicio = System.nanoTime();
// código
long duracao = System.nanoTime() - inicio;

Segundo a documentação, é mais adequado para medir durações e possui precisão maior que System.currentTimeMillis().

2 curtidas