Medir o tempo de execução do código é essencial para otimizar o desempenho em aplicações Java. Ajuda os desenvolvedores a identificar gargalos e melhorar a eficiência. Este artigo explora métodos comuns para calcular o tempo de execução e fornece exemplos práticos.

Usando System.nanoTime ()

O método System.nanoTime()] oferece medição de tempo de alta resolução. Retorna o valor atual do temporizador mais preciso disponível do sistema, em nanossegundos. Para medir o tempo de execução, registre o tempo de início antes de o código ser executado e o tempo final depois. A diferença indica o tempo decorrido.

Exemplo:

[[FLT: 0]]long startTime = System.nanoTime();

// código a medir

long endTime = System.nanoTime();

[[FLT: 0]] longa duração = fimTempo - inícioTempo;

Usando System.currentTimeMillis ()

O método System.currentTimeMillis() fornece o tempo atual em milissegundos. É menos preciso do que mas adequado para medir durações mais longas. Semelhante ao método anterior, registre os tempos de início e fim em torno do bloco de código.

Exemplo:

[[FLT: 0]]long startTime = System.currentTimeMillis();

// código a medir

long endTime = System.currentTimeMillis();

[[FLT: 0]] longa duração = fimTempo - inícioTempo;

Usando a Classe Instantânea do Java

O pacote Instant[] da classe java.time oferece uma abordagem moderna para a medição do tempo. Fornece precisão nanosegundo e é adequado para medir durações.

Exemplo:

[[FLT: 0]]Início instantâneo = Instant.now();

// código a medir

Fim instantâneo = Instant.now();

Duração = Duração.entre(inicial, fim);

Exemplo do Mundo Real

Suponha que você queira medir quanto tempo leva para classificar um array grande. Usando System.nanoTime(), você pode implementar o seguinte:

int[] array = new int[1 000 000];

// lista de povoamentos

[[FLT: 0]]long startTime = System.nanoTime();

Arrays.sort(array);

long endTime = System.nanoTime();

System.out.println("Ordenamento tomado" + (endTime - startTime) + "nanossegundos.");