Как узнать время работы программы java

Здравствуйте, Аноним, Вы писали:

А>как узнать время работы программы, то есть от начала вычислений до конца ?
http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime%28%29

Re[2]: время работы программы

От: Аноним
Дата: 25.12.13 09:33
Оценка:

Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, Аноним, Вы писали:

А>>как узнать время работы программы, то есть от начала вычислений до конца ?
B>http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime%28%29

еще вопрос
чтобы в секунды перегнать результат nanoTime() надо сделать так
(double)resultTime/1000000000.0

Re[3]: время работы программы

От: Blazkowicz
Дата: 25.12.13 10:10
Оценка:

Здравствуйте, Аноним, Вы писали:

Как узнать время выполнения программы? #python #программирование



А>еще вопрос
А>чтобы в секунды перегнать результат nanoTime() надо сделать так
А>(double)resultTime/1000000000.0

Re[3]: время работы программы

От: ZeroLatency
Дата: 25.12.13 10:37
Оценка:

Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Blazkowicz, Вы писали:

B>>Здравствуйте, Аноним, Вы писали:

А>>>как узнать время работы программы, то есть от начала вычислений до конца ?
B>>http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime%28%29

А>еще вопрос
А>чтобы в секунды перегнать результат nanoTime() надо сделать так
А>(double)resultTime/1000000000.0

А>?

Re[4]: время работы программы

От: Blazkowicz
Дата: 25.12.13 10:39
Оценка:

Здравствуйте, ZeroLatency, Вы писали:

ZL>TimeUnit.SECONDS.convert(elapsedTime, TimeUnit.NANOSECONDS)
целочисленный

Re[3]: время работы программы

От: avpavlov
Дата: 25.12.13 11:34
Оценка:

В ЙодаТайм ещё есть приятный форматер

PeriodFormatter periodFormat = new PeriodFormatterBuilder() .appendHours() .appendSuffix(«h»).appendSeparator(» «) .appendMinutes() .appendSuffix(«m»).appendSeparator(» «) .appendSeconds() .appendSuffix(«s»).appendSeparator(» «) .appendMillis() .appendSuffix(«ms»).appendSeparator(» «) .toFormatter(); periodFormat.print(new Period(TimeUnit.NANOSECONDS.toMillis(nanos)));
Re[4]: время работы программы

От: Blazkowicz
Дата: 25.12.13 11:51
Оценка:

Здравствуйте, avpavlov, Вы писали:

Что такое компиляция, линковка? Что такое run time?



A>В ЙодаТайм ещё есть приятный форматер
Странно. В Java 8 такого нет. Только DateTimeFormatterBuilder.

Читайте также:
По какой программы можно проверить человека

Re[5]: время работы программы

От: avpavlov
Дата: 25.12.13 12:09
Оценка:

Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, avpavlov, Вы писали:

A>>В ЙодаТайм ещё есть приятный форматер
B>Странно. В Java 8 такого нет. Только DateTimeFormatterBuilder.

Видать целиком перестаскивать было стыдно Решили «лишнее» выкинуть. Этот форматер, на самом деле, не такой классный, потому что микро и нано не умеет, приходится своих костыльков дописывать, если вдруг такая точность нужна.

Источник: www.rsdn.org

Как проверить время работы программы?

не подходит, т.к выдает время после завершения всех методов. Мне нужно чтобы с момента старта программы засечь, допустим, 1 минуту, если программа выполняется больше, то принудительно выйти, вне зависимости от завершения методов. Может как-то засечь время выполнения главного потока?

Ответы (1 шт):

Например, можете воспользоваться способом с System.currentTimeMills() :

long start = System.currentTimeMillis(); long end = start + 60*1000; // 60 секунд* 1000 мс/сек while (System.currentTimeMillis() < end) < // work hard, play hard >

Можно выйти из программы из другого Thread :

public class ExitAfterMinute < public static void main(String args[]) < new Thread(new Runnable() < public void run() < try < Thread.sleep(60000); // минута в милисекундах >catch (InterruptedException e) < e.printStackTrace(); >System.exit(0); > >).start(); while (true) < System.out.println(«I’m doing something»); >> >

Либо с помощью таймера:

import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TimedExit < Timer timer = new Timer(); TimerTask exitApp = new TimerTask() < public void run() < System.exit(0); >>; public TimedExit() < timer.schedule(exitApp, new Date(System.currentTimeMillis() + 60 * 1000)); >>

Источник: husl.ru

Как найти время, необходимое для запуска Java-программы?

У меня есть Java-приложение, над которым я работаю, и я только что понял, что программа должна вернуть значение менее чем за минуту, но не знаю, как найти или отобразить время, затраченное на запуск программы. Как найти время, необходимое для запуска программы?

Читайте также:
То же что икона программы кроссворд

ОТВЕТЫ

Ответ 1

Вы можете сравнить время, используя System.nanoTime() . Это вернет время в наносекундах.

Возвращает текущее значение наиболее точного доступного системного таймера в наносекундах.

Вы можете использовать это так:

long startTime = System.nanoTime(); // code long endTime = System.nanoTime(); System.out.println(«Took «+(endTime — startTime) + » ns»);

Полезные ссылки:

Ответ 2

Нет встроенного способа узнать, как долго работает ваша программа. Тем не менее, вы могли бы в начале программы просто сохранить текущее время, так что через некоторое время вы увидите, сколько времени прошло.

public class MyProgram < private static long startTime = System.currentTimeMillis(); public static void main(String[] args) < // Do stuff. // At the end long endTime = System.currentTimeMillis(); System.out.println(«It took » + (endTime — startTime) + » milliseconds»); >>

Ответ 3

Если у вас есть Spring в качестве зависимости вашего проекта (или вы не против добавить его), вы можете использовать StopWatch . Как следует из названия, после инициализации он будет считать время, пока вы его не остановите. Затем вы можете проверить время, необходимое для выполнения задачи. Несколько StopWatches могут быть использованы одновременно для нескольких задач, сохраняя код в чистоте.

Помимо поддержания вашего кода в чистоте, StopWatches помогает с форматированием времени и другими служебными методами.

public void myMethod() < StopWatch stopWatch = new StopWatch(); stopWatch.start(«Task1»); // . // Do my thing // . stopWatch.stop(); System.out.println(«Task executed in » + stopWatch.getTotalTimeSeconds() + «s»); >

Ответ 4

Если вы просто хотите узнать, как долго работает ваша программа, используйте System.currentTimeMillis() в начале и конце вашей программы.

Ответ 5

Вы можете использовать 2 API, предоставляемые классом System

  1. System.currentTimeMillis() Если код занимает время в миллисекундном диапазоне
  2. System.nanoTime() Если код занимает время в наносекундном диапазоне
Читайте также:
Программа поиска объявлений авто

Образец кода

public class TestTimeTaken < public static void main(String args[]) throws InterruptedException< long startTimeNanoSecond = System.nanoTime(); long startTimeMilliSecond = System.currentTimeMillis(); //code Thread.sleep(1000); //code long endTimeNanoSecond = System.nanoTime(); long endTimeMilliSecond = System.currentTimeMillis(); System.out.println(«Time Taken in «+(endTimeNanoSecond — startTimeNanoSecond) + » ns»); System.out.println(«Time Taken in «+(endTimeMilliSecond — startTimeMilliSecond) + » ms»); >>

Ответ 6

Это типичная утилита для аспектов, например, Spring AOP:

И в контексте вашего приложения:

Ответ 7

Мне нравится использовать класс Apache Commons StopWatch, когда у меня есть библиотека.

import org.apache.commons.lang3.time.StopWatch; // . StopWatch stopWatch = new StopWatch(); String message = «Task : %s (%s) seconds»; // . stopWatch.split(); System.out.println(String.format(message, «10», stopWatch.toSplitString())); // . stopWatch.split(); System.out.println(String.format(message, «20», stopWatch.toSplitString())); stopWatch.stop();

Источник: utyatnishna.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru