Medindo diferenças de tempo usando System.currentTimeMillis ()

Eu tenho um programa java simples e quero saber a diferença de tempo entre alguns conjuntos de operações. Para essa questão, os detalhes não são importantes, mas vamos seguir o seguinte cenário.

long beginTime = System.currentTimeMillis();

//Some operations. Let us asssume some database operations etc. which are time consuming.

//

long endTime = System.currentTimeMillis();

long difference = endTime - beginTime;

Quando o código é executado em uma máquina, qual será a diferença?

Digamos, que o processador comece a executar algumas instruções do meu código, então dê contexto a outro processo, que é executado por algum tempo, e então volte a executar instruções relacionadas a esse processo java.

Então, a diferença de tempo deve depender do estado atual da minha máquina, ou seja, quantos processos estão sendo executados, etc? Então, no tempo de criação de perfil é necessário que algumas operações sejam executadas. Esse mecanismo não é confiável?

questionAnswers(2)

yourAnswerToTheQuestion