c# xamarin memory-leaks xamarin.android xamarin-studio

c# - Cómo comprobar la fuga de memoria en Xamarin.Android?



memory-leaks xamarin-studio (2)

¿Alguien podría compartir sugerencias o formas de verificar la memoria en la plataforma Xamarin.Android usando Xamarin Studio?

Lo he intentado con la siguiente opción disponible en Xamarin Studio,

Herramientas> Instrumentos> Asignaciones

Pero en eso, puedo seleccionar solo dispositivos iOS en las opciones como en la imagen de abajo,

¿Hay alguna solución para esto?


Puede probar Xamarin Profiler https://www.xamarin.com/profiler En instantáneas de memoria, verá si hay una pérdida de memoria. Pero desde mi experiencia, si obtienes una excepción de memoria insuficiente, puede que uses una imagen de gran tamaño en tu proyecto de Android.


Tristemente, pero no puedes hacerlo desde Xamarin Studio de ninguna manera confiable. Puede probar el generador de perfiles, pero requiere una licencia Enterprise. Mi sugerencia es usar herramientas estándar de Android.

PREPARACIÓN:

1) Descargar "Eclipse Memory Analyzer"

2) Encuentra Android Device Monitor. Incluido con Android SDK y se puede encontrar en "Android-SKD / tools / monitor". Puede averiguar la ubicación de esa carpeta abriendo Xamarin, presionando CMD + y seleccionando Ubicaciones de SDK.

3) Encuentra el convertidor Heap Snapshot (de Android a Java). Incluido con Android SDK y se puede encontrar en "Android-SDK / platform-tools / hprof-conv"

CAPTURAR:

1) Instalar la aplicación con el modo de depuración en el dispositivo

2) Conecte el dispositivo a la PC y ejecute el monitor (2 pasos en la preparación)

3) Inicie la aplicación y búsquela por ID de la aplicación en los dispositivos.

4) Presione Update Heap (icono a la derecha del icono de error)

5) Haz cosas que crees que hacen fugas

6) Presione Save Heap (icono a la derecha de inicio) y guárdelo en la unidad

RESULTADOS DE RETRIEVER:

1) Convertir el Heap de Android al Heap de Java

1.1) Terminal de lanzamiento

1.2) Ubique el convertidor Heap Shanpshot (hprof-conv) (3 pasos en la preparación)

1.3) colocar hprof-conv en la terminal

1.4) soltar el montón de Android, y luego soltarlo y cambiarle el nombre. Creará la copia correcta en la misma ubicación con el nombre elegido

android-sdk-macosx/platform-tools/hprof-conv raw.hprof converted.hprof

2) Abra Eclipse Memory Analyzer (1 paso en la preparación)

3) Importar el vertedero adquirido

3) Seleccione Informe de sospecha de fuga

4) Ver resultados