Pomiar różnic czasu za pomocą System.currentTimeMillis ()
Mam prosty program java i chcę znać różnicę czasu między jakimś zestawem operacji. W tym pytaniu szczegóły nie są ważne, ale weźmy następujący scenariusz.
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;
Kiedy kod jest uruchamiany na maszynie, jak niezawodna będzie różnica?
Powiedzmy, że procesor zaczyna wykonywać niektóre instrukcje z mojego kodu, następnie nadaje kontekst innemu procesowi, który wykonuje się przez pewien czas, a następnie powraca, aby wykonać instrukcje związane z tym procesem java.
Różnica czasu powinna więc zależeć od aktualnego stanu mojego komputera, tj. Od liczby uruchomionych procesów itp.? Czy w związku z czasem profilowania niektóre operacje są uruchamiane, czy ten mechanizm nie jest wiarygodny?