Я попытался создать метод, который даст мне представление о том, сколько времени требуется для запуска моих программ, и по неизвестной причине я не могу получить наносекунды.
Я пытался прочитатьо следующих классах, но не смог узнать, что я делаю не так: import java.time.Duration;import java.time.Instant;
Методы:
public static String calcExecutionTime(Instant startTime, Instant endTime) {
if ((Duration.between(startTime, endTime).toNanos()) < 1000000) {
return Duration.between(startTime, endTime).toNanos() + " nanoseconds.";
} else if ((Duration.between(startTime, endTime).toMillis()) < 1000) {
return Duration.between(startTime, endTime).toMillis() + " milliseconds.";
} else if ((Duration.between(startTime, endTime).toSeconds()) < 100) {
return Duration.between(startTime, endTime).toSeconds() + " seconds.";
} else if ((Duration.between(startTime, endTime).toMinutes()) < 60) {
return Duration.between(startTime, endTime).toMinutes() + " minutes.";
} else {
return Duration.between(startTime, endTime).toHours() + " hoursm.";
}
}
Основное здесь:
Instant instantStart = Instant.now();
Instant instantEnd = Instant.now();
System.out.print("Execution time for this program: " + calcExecutionTime(instantStart, instantEnd));
Если я использую старый System.nanoTime ();Я получаю результат 300-400 наносекунд, но с помощью toNanos () я получаю 0 в той же ситуации.
Редактировать: я не использую getNano (), я использую toNanos ()