2010-11-10 2 views
2

Мне нужно профилировать несколько функций в моем java-коде для Android.Есть ли ориентированный на обучение инструмент профилирования для Android?

Я знаю про отслеживание. И я действительно нашел, какие функции следует исследовать с помощью этого инструмента. Но он не дает никакой информации, которая могла бы помочь в исследованиях внутри определенных функций.

Итак, можно ли каким-либо образом получить информацию профилирования каждой команды для Java-кода на Android?

+0

Я бы не стал беспокоиться о профилировании на уровне инструкций. Что вы делаете для такой тонкой настройки? Если это ДЕЙСТВИТЕЛЬНО нужно оптимизировать, что трудно, подумайте о том, чтобы записать его на C++ с помощью NDK. – Falmarri

+1

Вам, скорее всего, нужно взглянуть на дизайн функции, а не на одну конкретную строку. Используете ли вы алгоритм n^2 или делаете много ненужных io? –

+0

@inazaruk: «Но он не дает информации, которая может помочь в исследованиях внутри определенных функций» - в Java нет «функций», поэтому я предполагаю, что вы ссылаетесь на методы. Если ваш метод настолько длинный, что проверка стола не может определить, где находится ваше узкое место, напишите более короткие методы. – CommonsWare

ответ

0

Я предлагаю вам попробовать «hprof» в вашем Java-коде, чтобы выгрузить профилированные данные в файл, и вы можете проанализировать этот файл для получения более подробной информации.

API для использования:
dumpHprofData(String fileName)

Если вы заинтересованы в более детальном уровне профилирования, то вы можете попробовать «readprofile», который работает на уровне ядра. Тебе понадобится 'busybox', чтобы использовать его. Однако, я думаю, вам нужно сопоставить инструкции с инструкциями Java.