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

Поскольку вы устанавливаете скользящее окончание, не всегда ли это 10 минут с момента, когда вы обращались к нему? если объект имеет значение NULL, кэш-запись истек, а если нет, то срок действия (в приведенном выше коде) всегда равен 10 минутам с момента проверки?

Или у вас может быть базовый объект (все ваши кэшируемые объекты наследуются) с временем истечения срока действия в качестве свойства, которое устанавливается при добавлении кеша. Когда вы извлекаете объект, вы проверяете свойство, и у вас есть время истечения, чтобы рассчитать разницу. Просто мысль.

43
задан Matthew 2 June 2019 в 11:47
поделиться

5 ответов

Помимо профилировщика, простой способ получить то, что вам нужно, следующий:

public class SomeClass{
   public void somePublicMethod()
   {
       long startTime = System.currentTimeMillis();
       someMethodWhichYouWantToProfile();
       long endTime = System.currentTimeMillis();
       System.out.println("Total execution time: " + (endTime-startTime) + "ms"); 
   }
 }
46
ответ дан 26 November 2019 в 22:06
поделиться

Вам следует использовать профилировщик, например

. Он легко интегрируется с любой IDE и показывает все необходимые детали.

Конечно, эти инструменты сложны и предназначены для профилирования сложных программ. Если вам нужны только простые тесты производительности, я предлагаю вам использовать System.currentTimeMillis () или System.nanoTime ( ) и самостоятельно вычислите дельту в миллисекундах между вызовами.

3
ответ дан 26 November 2019 в 22:06
поделиться

Вы можете добавить этот код, и он сообщит вам, сколько времени потребовалось для выполнения метода.

long millisecondsStart = System.currentTimeMillis();
executeMethod();
long timeSpentInMilliseconds = System.currentTimeMillis() - millisecondsStart;
0
ответ дан 26 November 2019 в 22:06
поделиться

Использование профилировщика лучше, потому что вы можете узнать среднее время выполнения и узкие места в вашем приложении.

Я использую VisualVM. ловко и просто.

3
ответ дан 26 November 2019 в 22:06
поделиться

Jprofiler и yourkit хороши, но стоят денег.

Существует бесплатный плагин для eclispe под названием TPTP (Test & Performance Tools Platform), который может дать вам время выполнения кода. Вот учебник, который можно найти с помощью быстрого поиска в Google. http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html

1
ответ дан 26 November 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: