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

Содержание

cellForItem (at:) Объект ячейки по соответствующему пути индекса или nil, если ячейка не видна или indexPath находится вне диапазона.

blockquote>

Вы должны использовать модель данных titlesArr для доступа к данным.

См. UICollectionview cellForItem, вернуть nil

.

задан Eric Leschinski 26.04.2015, 14:39

11 ответов

Всегда существует старомодный путь:

long startTime = System.nanoTime(); methodToTime(); long endTime = System.nanoTime(); long duration = (endTime — startTime); //divide by 1000000 to get milliseconds.
ответ дан michaelsnowden 04.10.2019, 11:32

на самом деле, его » new-fashioned» потому что Вы использовали нановремя, который wasn’ t добавленный до java5 – John Gardner 08.10.2008, 12:26

Это (или использующий System.currentTimeMillis ()), кажется, путь it’ s обычно делавшийся в Java. это I’ ve замечен так или иначе. Это все еще мягко удивляет меня это there’ s никакой элегантный встроенный класс, как Таймер t = новый Таймер (); Представьте s в виде строки = t.getElapsed (формат); и т.д. – Ogre Psalm33 09.10.2008, 02:48

Урок 24. Работа с датой и временем. Java Date Time API

нановремя не гарантирует точности лучше, чем currentTimeMillis (), хотя это обычно делает. forums.sun.com/thread.jspa?messageID=9460663 и simongbrown.com/blog/2007/08/20/… – James Schek 09.10.2008, 07:20

Конечно, it’ s всегда важный для запоминания ловушек микросравнительного тестирования, таких как оптимизация компилятора/JVM, которая может исказить результат =8-), – Yuval 08.01.2009, 03:26

Читайте также:
Fxmonitor отзывы о программе

Нет никакой потребности в наконец блок как endTime won’ t использоваться, если исключение выдается. – Peter Lawrey 06.05.2009, 09:42

Как «skaffman» сказал, используйте AOP, ИЛИ можно использовать переплетение байт-кода времени выполнения, точно так же, как инструменты покрытия метода модульного теста используют для прозрачного добавления информации о синхронизации к вызванным методам.

, Если Вам в конечном счете удается сделать то, что Вы излагаете в. совместно используйте его назад с сообществом здесь с Вашей задачей Ant / банки.

ответ дан anjanb 04.10.2019, 11:32

В моем случае у меня есть булевская переменная doFoo. Ошибка брошена, если doFoo верен, и нечто не сделано, или если doFoo является ложью, и нечто сделано. Если doFoo является пустым, никакие ошибки не брошены независимо – Bart van Heukelom 30.10.2019, 18:06

long startTime = System.currentTimeMillis(); // code goes here long finishTime = System.currentTimeMillis(); long elapsedTime = finishTime — startTime; // elapsed time in milliseconds
ответ дан Ryan Rodemoyer 04.10.2019, 11:32

Если Вы хотите тактовое стеной время

long start_time = System.currentTimeMillis(); object.method(); long end_time = System.currentTimeMillis(); long execution_time = end_time — start_time;
ответ дан David Nehme 04.10.2019, 11:32

еще лучше — предполагают, что первый элемент и макс. и минута, пока не доказано иначе – warren 14.02.2020, 06:31

Java Algorithms #1: поиск минимального, максимального и среднего значения

Используйте профилировщика (JProfiler, Профилировщик Netbeans, Визуальный VM, Профилировщик Eclipse, и т.д.). Вы получите самые точные результаты и наименее навязчивы. Они используют встроенный механизм JVM для профилирования, которое может также дать Вам дополнительную информацию как отслеживания стека, пути выполнения и более всесторонние результаты при необходимости.

При использовании полностью интегрированного профилировщика, это умирающим образом тривиально для профилирования метода. Щелкните правой кнопкой, Профилировщик-> Добавляют к Корневым Методам. Тогда выполните профилировщика точно так же, как Вы делали тестовый прогон или отладчик.

ответ дан James Schek 04.10.2019, 11:32

Это было также большим предложением и одним из тех » duh» моменты лампочки для меня, когда я прочитал этот ответ. Наш проект использует JDeveloper, но я проверил, и конечно же, it’ s получил встроенного профилировщика! – Ogre Psalm33 09.10.2008, 02:14

От сборки java 7 40 (я думаю) они включали бывший Бортовой самописец JRockits в Java (поиск Управления полетом Java) – Niels Bech Nielsen 18.03.2014, 02:30

Это точно, что я решил сделать — сортируют Массив (убывающий для МАКСА, возрастающего для МИН), и затем захватывают первый элемент. – Eric Belair 14.02.2020, 06:36

Это, вероятно, не то, что Вы хотели, чтобы я сказал, но это — хорошее использование AOP. Хлещите перехватчик прокси вокруг своего метода и сделайте синхронизацию там.

, какой, почему и как из AOP скорее выходит за рамки этого ответа, к сожалению, но это — то, как я, вероятно, сделал бы это.

Редактирование: Вот ссылка к AOP Spring для запущения Вас, если Вы увлечены. Это — самая доступная реализация AOP, с которым Iive сталкиваются для Java.

Читайте также:
Может ли программа удалить сама себя

кроме того, учитывая всех очень простые предложения else, я должен добавить, что AOP для того, когда Вы не хотите, чтобы материал как синхронизация вторгся в Ваш код. Но во многих случаях, такой простой и легкий подход прекрасен.

ответ дан Buhake Sindi 04.10.2019, 11:32

Вот учебное руководство о том, как сделать это с Spring: veerasundar.com/blog/2010/01/… – David Tinker 04.01.2011, 23:05

There’ s немного отсутствия кода: » else» часть » если (массив [запускают] < массив [start+1]) » блок. – Brilliand 14.02.2020, 06:37

Существует несколько способов сделать это. Я обычно отступаю только к использованию чего-то вроде этого:

long start = System.currentTimeMillis(); // . do something . long end = System.currentTimeMillis();

или то же самое с System.nanoTime ();

Для чего-то больше на стороне сравнительного тестирования вещей, кажется, также существует этот: http://jetm.void.fm/ Никогда не пробовал его все же.

ответ дан Horst Gutmann 04.10.2019, 11:32

Да, возможно, it’ s быстрее, с другой стороны возможно, it’ s нет. Я думаю, что этот ответ был бы намного лучше с фактическим сравнением этих двух методов. – laurent 14.02.2020, 06:31

Просто маленькое скручивание, если Вы не используете инструменты и хотите к методам времени с низким временем выполнения: выполняйте его много раз, каждый раз удваивая количество раз, это выполняется, пока Вы не достигаете секунды, или около этого. Таким образом время Вызова к System.nanoTime и т.д, ни точность System.nanoTime действительно влияют на результат очень.

int runs = 0, runsPerRound = 10; long begin = System.nanoTime(), end; do < for (int i=0; iwhile (runs < Integer.MAX_VALUE / 2 1000000000L >end — begin); System.out.println(«Time for timedMethod() is » + 0.000000001 * (end-begin) / runs + » seconds»);

, Конечно, протесты об использовании настенных часов применяются: влияния JIT-компиляции, несколько потоков / обрабатывают и т.д. Таким образом, необходимо сначала выполнить метод много из времен сначала, такой, что JIT-компилятор делает свою работу, и затем повторяет этот тест многократно и занимает самое низкое время выполнения.

ответ дан Hans-Peter Störr 04.10.2019, 11:32

Вы действительно понимаете, что сортировка берет путь больше времени, чем простое сканирование списка однажды. – Eclipse 14.02.2020, 06:36

Блог

Вы сейчас просматриваете Java-программа для расчета времени выполнения методов

Java-программа для расчета времени выполнения методов

  • Запись опубликована: 3 июня, 2023
  • Рубрика записи: Java
  • Комментарии к записи: 0 комментариев

В этом примере мы научимся вычислять время выполнения обычных методов и рекурсивных методов в Java.

Чтобы понять этот пример, вы должны обладать знаниями по следующим темам программирования на Java:

  • Методы Java
  • Рекурсия Java

Пример 1: Java-программа для вычисления времени выполнения метода

class Main < // create a method public void display() < System.out.println(«Calculating Method execution time:»); >// main method public static void main(String[] args) < // create an object of the Main class Main obj = new Main(); // get the start time long start = System.nanoTime(); // call the method obj.display(); // get the end time long end = System.nanoTime(); // execution time long execution = end — start; System.out.println(«Execution time: » + execution + » nanoseconds»); >>

Читайте также:
Для создания диаграммы в программе Microsoft word нужно

Выпуск

Calculating Method execution time: Execution time: 656100 nanoseconds

В приведенном выше примере мы создали метод с именем . Метод выводит инструкцию на консоль. Программа вычисляет время выполнения метода. display() display()

Здесь мы использовали метод класса. Метод возвращает текущее значение работающей JVM в наносекундах. nanoTime() System nanoTime()

Пример 2: Вычисление времени выполнения рекурсивного метода

class Main < // create a recursive method public int factorial( int n ) < if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; >// main method public static void main(String[] args) < // create object of Main class Main obj = new Main(); // get the start time long start = System.nanoTime(); // call the method obj.factorial(128); // get the end time long end = System.nanoTime(); // execution time in seconds long execution = (end — start); System.out.println(«Execution time of Recursive Method is»); System.out.println(execution + » nanoseconds»); >>

Выпуск

Execution time of Recursive Method is 18600 nanoseconds

В приведенном выше примере мы вычисляем время выполнения рекурсивного метода с именем . factorial()

Вам также может понравиться

Подробнее о статье Java-программа для замены двух чисел

Java-программа для замены двух чисел

Подробнее о статье Программа Java для перебора каждого символа строки.

5 июня, 2023

Программа Java для перебора каждого символа строки.

Подробнее о статье Java-программа для перебора ArrayList с использованием лямбда-выражения

3 июня, 2023

Java-программа для перебора ArrayList с использованием лямбда-выражения

3 июня, 2023

Рассчитать время выполнения Java-программы

Ответы там больше сосредоточены на использовании nanotTime () / currentTimeInMillis () для вычисления времени выполнения, но при этом не учитывается время планирования ОС. — person Kakarot nbsp schedule 23.02.2014

Попробуйте этот механизм: stackoverflow.com / questions / 3382954 / — person yegor256 try < Thread.sleep(7000); >catch (InterruptedException e) < e.printStackTrace(); >Instant end = Instant.now(); System.out.println(Duration.between(start, end)); >

И он печатает: PT7.001S

person akhil_mittal schedule 22.06.2015

Старомодный способ . Разбить на методы

long startTime = System.nanoTime(); methodToTime(); long endTime = System.nanoTime(); long duration = endTime — startTime;
person KRUKUSA schedule 23.02.2014

Это подход, при котором мы обычно разбиваем на небольшие функции, чтобы избежать последствий планирования. Но если есть что-то, что нельзя сломать, и на вычисление уходит значительное время, то в конечном итоге мы сталкиваемся с проблемой правильного расчета времени. — person Kakarot; 23.02.2014

Я уверен, что если бы вы добавили все эти методы расчета, вы бы получили примерно такое же время, как если бы это был один. Если это профилирование, которое вам нужно сделать в вашей программе, я бы предложил использовать инструмент профилирования NetBean, но для общего времени выполнения System.currentTimeMillis (); должно быть достаточно, чтобы получить ту информацию, которую вы хотели — person KRUKUSA; 23.02.2014

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

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