Добрый день!
Участвую в хакатоне, там есть следующие ограничения:
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Определяю время работы приложения с помощью Instant, а размер используемой памяти как Runtime.totalMemory() - Runtime.freeMemory().
Насколько эти способы правильны?
Instant start = Instant.now(); // момент начала работы программы
Runtime runtime = Runtime.getRuntime();
long run = runtime.totalMemory() - runtime.freeMemory(); // вычисляем сколько памяти использует программа
String [][] ar = new String [2][];
ar[0] = new String[2];
ar[1] = new String[1];
ar[0][0] = "ar 0 0";
ar[0][1] = "ar 0 1";
ar[1][0] = "ar 1 0";
Instant finish = Instant.now(); // момент окончания работы программы
Duration.between(start, finish).toNanos(); // вычисляем время работы программы
Duration.between(start, finish).toNanos(); - в моем случае возвращает 0. Это верно? Программа может выполняться быстрее одной наносекунды?