Блок кода :
long m = System.currentTimeMillis();
System.out.println(m);
Выдает вот такое значение : 1482923121138
Как не пытался конвертировать и где только не гуглил,выход так и не нашел.
Мне нужно преобразовать полученное значение в секунды. Т.е. вывести на экран время выполнения программы.
попробуйте
long m = System.currentTimeMillis();
// Код
System.out.println(System.currentTimeMillis() - m);
System.currentTimeMillis() - возвращает количество миллисекунд прошедших с полуночи 1 января 1970 года, это называется UNIX-время.
Чтобы посчитать сколько времени выполнялся какой-то кусок кода, нужно посчитать разницу, т.е. что-то типа:
long time = System.currentTimeMillis();
someMethod();
// some code
System.out.println(System.currentTimeMillis() - time);
Для замера воспользуйтесь методом:
/**
* @param method метод для замера
* @param timeUnit единица измерения
* @return время работы
*/
private static long timer(Runnable method, TimeUnit timeUnit) {
long time = System.nanoTime();
method.run();
time = System.nanoTime() - time;
return TimeUnit.NANOSECONDS.convert(time, timeUnit);
}
Использовать так:
long time = timer(() -> {
System.out.println("hello world");
}, TimeUnit.NANOSECONDS);
System.out.println(time);
Я обычно делаю так:
long time = System.nanoTime();
// Код, который нужно померить
time = System.nanoTime() - time;
System.out.printf("Elapsed %,9.3f ms\n", time/1_000_000.0);
Вы понимаете что в java измерить производительность одним разом нельзя. Причина динамичная компиляция. Вам требуется измерять множество раз код.
Тоесть это, не совсем правильно, вот 1 000 раз измерить и на больших значениях, хорошо.
long m = System.currentTimeMillis();
// Код
System.out.println(System.currentTimeMillis() - m);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей