2011-10-09 16 views

Respuesta

7

No es fácil hacer que el generador de perfiles Android-NDK funcione. Debe seguir los pasos here a fondo.

Éstos son algunos consejos que me han llevado al éxito:

  • Asegúrese de que su android.mk es correcta y que se exporta la NDK_MODULE_PATH.
  • utilizar correctamente las siguientes funciones

    monstartup ("your_lib.so");

    moncleanup();

  • Si el gmon.out se genera ahora, necesita extraerlo del dispositivo, pero no a ningún lado en su PC. Para mí sólo funciona si voy a la carpeta de la aplicación (donde JNI, obj, res y otras carpetas son) y lo hago:

    consola $ ADB sdcard tirón/gmon.out

  • A continuación, ejecute gprof. Prueba todas las versiones en tus cadenas de herramientas NDK. Para mí sólo funcionaba uno, éste:

    consola $ ~/Bibliotecas/android-NDK-R9/cadenas de herramientas/arm-linux-androideabi-4.8/prebuilt/Linux-x86_64/bin/arm-linux-androideabi -gprof obj/local/armeabi-v7a/libxxxx.so> profile.txt

8

La plataforma Shiny profiler es independiente de la plataforma, se ejecuta en cualquier lugar y no tiene ninguna dependencia además de un compilador C++ estándar. En su uso más simple, todo lo que necesita hacer es agregar una macro al comienzo de todas las funciones y métodos (o al menos aquellos que desea crear un perfil).

+2

modificando cada función en el proyecto es dolorosa. Prefiero la instrumentación automática. ¡Pero gracias por el consejo! –

+3

Si nada funciona, te garantizo que Shiny lo hará. Tuve un problema similar con webOS. El soporte de gprof se rompió, y no había nada más disponible. Shiny lo hizo realmente bien y me ayudó a resolver mis problemas de rendimiento. Para el esfuerzo de instrumentar el código, simplemente escribí un script que localizaba todos los cuerpos de la función usando una expresión regular, luego inserté la macro llamada automáticamente, para que no fuera nada doloroso. Buena suerte con tu búsqueda. – Miguel

+0

¡Tiene sentido! Me refiero a la inserción automática de macros. ¡Gracias! –

2

Amplificador Intel VTune. Este generador de perfiles le permite recopilar puntos de acceso con acumulaciones en dispositivos Android sin raíz o cualquier modificación del sistema operativo. Aquí está la guía simple: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

+0

Acerca de la hora en que comienzan a apuntar a Android. Pero, ¿admiten ARM o solo x86? –

+0

Sí, funciona bien en ambos arcos. –

+0

Hola Ilya! :) ¿Es realmente mejor que android-ndk-profiler? ¿Cuanto cuesta? –

1

en el R13b NDK hay una nueva herramienta llamada simpleperf

+0

Simpleperf documentado en https://android.googlesource.com/platform/system/extras/+/master/simpleperf/README.md – osgx

Cuestiones relacionadas