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?