Измерение времени выполнения кода имеет важное значение для оптимизации производительности в приложениях Java. Это помогает разработчикам выявлять узкие места и повышать эффективность. В этой статье рассматриваются общие методы расчета времени выполнения и приводятся практические примеры.

Использование System.nanoTime()

Метод System.nanoTime() предлагает измерение времени с высоким разрешением. Он возвращает текущее значение наиболее точного доступного системного таймера за наносекунды. Для измерения времени выполнения записывайте время начала до запуска кода и время окончания после. Разница указывает на прошедшее время.

Пример:

long startTime = System.nanoTime();]

//код для измерения

long endTime = System.nanoTime();]

Длительность = конечное время — время начала;]

Используя System.currentTimeMillis()

Метод System.currentTimeMillis() обеспечивает текущее время в миллисекундах. Он менее точен, чем , но подходит для измерения более длительных периодов. Подобно предыдущему методу, записывайте время начала и окончания вокруг блока кода.

Пример:

long startTime = System.currentTimeMillis();]

//код для измерения

long endTime = System.currentTimeMillis();]

Длительность = конечное время — время начала;]

Использование Java Instant Class

Класс Instant из пакета java.time предлагает современный подход к измерению времени. Он обеспечивает наносекундную точность и подходит для измерения длительностей.

Пример:

Мгновенный старт = Мгновенный.сейчас();]

//код для измерения

Мгновенный конец = Мгновенный.сейчас();]

Продолжительность = Продолжительность. между (начало, конец);]

Реальный пример

Предположим, вы хотите измерить, сколько времени требуется для сортировки большого массива. Используя System.nanoTime(), вы можете реализовать следующее:

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

// populate array

long startTime = System.nanoTime();]

Arrays.sort(array);]

long endTime = System.nanoTime();]

System.out.println("Sorting take" + (endTime - startTime) + "noseconds");