Метод nanoTime
Метод nanoTime класса System возвращает
текущее значение наиболее точного доступного
системного таймера в наносекундах. Метод не
принимает параметров. Возвращаемое значение
имеет тип long. Важно понимать, что
значение не является абсолютным временем -
оно может быть отрицательным и не имеет
смысла само по себе. Использовать его нужно
только для измерения разницы между двумя
вызовами метода, например, для замера
времени выполнения кода.
Синтаксис
System.nanoTime()
Пример
Давайте замерим время выполнения простого цикла и выведем результат в наносекундах:
public class Main
{
public static void main(String[] args)
{
long start = System.nanoTime();
int sum = 0;
for (int i = 0; i < 1000000; i++)
{
sum += i;
}
long end = System.nanoTime();
long res = end - start;
System.out.println("Sum: " + sum);
System.out.println("Elapsed: " + res + " ns");
}
}
Результат выполнения кода:
"Sum: 1784293664"
"Elapsed: 3521500 ns"
Пример
Давайте переведем наносекунды в миллисекунды,
разделив результат на 1_000_000:
public class Main
{
public static void main(String[] args)
{
long start = System.nanoTime();
String str = "abcde";
for (int i = 0; i < 10000; i++)
{
str.concat("12345");
}
long end = System.nanoTime();
long res = (end - start) / 1_000_000;
System.out.println("Elapsed: " + res + " ms");
}
}
Результат выполнения кода:
"Elapsed: 12 ms"
Смотрите также
-
метод
currentTimeMillis,
который возвращает текущее время в миллисекундах -
класс
System,
который предоставляет системные методы -
метод
println,
который выводит данные на консоль -
метод
lineSeparator,
который возвращает разделитель строк