Android: есть ли инструмент для профилирования нативного кода? - PullRequest
20 голосов
/ 09 октября 2011

Я нашел только один инструмент профилирования - http://code.google.com/p/android-ndk-profiler/. Пока не удалось заставить его работать, поэтому мне интересно, есть ли другие доступные инструменты.Мне нужно создать профиль на физическом устройстве, так как мое приложение даже не работает на эмуляторе.

Ответы [ 4 ]

8 голосов
/ 23 ноября 2011

Блестящий профилировщик не зависит от платформы, он работает где угодно и не имеет никаких зависимостей, кроме стандартного компилятора C ++.В более простом использовании все, что вам нужно сделать, это добавить макрос в начале всех функций и методов (или, по крайней мере, тех, которые вы хотите профилировать).

7 голосов
/ 11 июня 2014

Нелегко заставить работать профилировщик Android-NDK.Вам нужно тщательно выполнить шаги здесь .

Вот несколько советов, которые привели меня к успеху:

  • Убедитесь, что ваш android.mk правильный и чтоВы экспортируете NDK_MODULE_PATH.
  • Используйте правильно следующие функции

    monstartup ("your_lib.so");

    moncleanup ();

  • Если gmon.out сгенерирован сейчас, вам нужно вытащить его из устройства, но не в любое место на вашем ПК.Для меня это работает только если я иду в папку приложения (где находятся jni, obj, res и другие папки), и я делаю:

    console $ adb pull sdcard / gmon.out

  • Затем запустите gprof.Попробуйте все версии в ваших наборах инструментов NDK.У меня работал только один, этот:

    консоль $ ~ / Libraries / android-ndk-r9 / toolchains / arm-linux-androideabi-4.8 / prebuilt / linux-x86_64 / bin/ arm-linux-androideabi-gprof obj / local / armeabi-v7a / libxxxx.so> profile.txt

2 голосов
/ 06 марта 2014

Intel VTune Усилитель. Этот профилировщик позволяет собирать горячие точки со стеками на устройствах Android без рута или каких-либо модификаций ОС. Вот простое руководство: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

1 голос
/ 09 февраля 2017

В NDK r13b есть новый инструмент под названием simpleperf

...