2014-05-01 1 views
-2

Я программирую немного Javagame для Android и хотел бы знать, есть ли возможность в Eclipse для выяснить, какой метод занимает больше всего времени для выполнения.Есть ли способ узнать, какой метод занимает больше всего времени? Eclipse Java

+0

Используйте профайлер как JVisualVM. – spectre

+0

или просто зарегистрировать метку времени в начале и конце метода. –

ответ

1

Это зависит от того, что вы собираетесь тестировать.

В случае разработки приложений для Android вы должны попробовать класс TimingLogger. Взгляните на this article, описывающий использование вспомогательного класса TimingLogger.

Очень полезный инструмент JMeter и есть plugin for Android.

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

Хотя currentTimeMillis часто используется, по-прежнему некорректно измерять прошедшее время и время. Во всяком случае, поскольку вызов занимает некоторое время, вы не должны ожидать правильного времени очень очень малых интервалов. Но это не должно быть проблемой для Android.

Я покажу вам пример:

long startTime = System.nanoTime(); 

// run/call the method 

long endTime = System.nanoTime(); 
long diff = lEndTime - lStartTime; 
System.out.println("Elapsed milliseconds: " + difference/1000000); 

Вы можете посмотреть на этой бесплатной библиотеке, а также: http://jetm.void.fm/

 Смежные вопросы

  • Нет связанных вопросов^_^