long startTime = System.nanoTime();
long startTimer = System.currentTimeMillis();
M = app.decriptare_simpla(C);
long endTime = System.nanoTime();
long stopTimer = System.currentTimeMillis();
//mesajul initial dupa decriptare
System.out.println("M : " + M.toString());
System.out.println("Decriptarea a durat: " + (endTime - startTime));
System.out.println("Decriptarea a durat: " + (stopTimer - startTimer));
Это дало мне:
Decriptarea a durat: 14811776
Decriptarea a durat: 15
Я хочу спросить, сколько из этих двух чисел? Я имею в виду, они, 0,15, 0,015, 0,0015...? Я бы хотел напечатать их таким образом, а не long
но не знаю, сколько десятичных знаков добавить. Тот же вопрос для другого номера.
Переходы следуют обычным правилам для стандартных единиц СИ:
long nanoSeconds = ...
double microSeconds = nanoSeconds / 1e3;
double milliSeconds = microSeconds / 1e3;
double seconds = milliSeconds / 1e3;
// Shortcuts:
double milliSeconds = nanoSeconds / 1e6;
double sconds = nanoSeconds / 1e9;
Для некоторых преобразований вы также можете взглянуть на класс TimeUnit: он позволяет конвертировать значения между разными единицами времени, например
long microSeconds = NANOSECONDS.toMicros(nanoSeconds);
Однако, к сожалению, это не позволяет использовать промежутки времени в double
точности, но только в виде long
значений.
В стороне, также упоминается в комментариях: Измерение временных интервалов в порядке 10-15 мс обычно не имеет смысла из-за ограниченного разрешения внутреннего таймера.
System.time.millis
вместо nano?
Вы пробовали это
System.out.println(TimeUnit.SECONDS.convert((endTime - startTime), TimeUnit.NANOSECONDS));
System.out.println(TimeUnit.SECONDS.convert((stopTimer - startTimer), TimeUnit.MILLISECONDS));
milli-
иnano-
префиксов. Ява не изобрел их.