java - studio - ¿Cómo detecto el uso del tamaño de pila de una aplicación de Android?
programa para crear aplicaciones android (2)
Sí. Tenga en cuenta que también hay una vista de pila en DDMS y puede usar MAT Eclipse, que es más que útil, especialmente en el seguimiento de pérdidas de memoria PERO, y este es un número enorme, pero los números que se ven son solo una memoria de referencia administrada por VM. Hay muchos subsistemas en Android que se implementan debajo de VM - Native. El ejemplo más simple de la clase Bitmap. No verá toda la memoria asignada a un mapa de bits en DDMS y el recolector de basura no es muy bueno / rápido en la recuperación de esta memoria. así que ten cuidado.
Me gustaría saber la cantidad de espacio de almacenamiento utilizado por mi aplicación de Android de dos maneras: - programáticamente - a través de DDMS.
Me he referido a this post, antes de publicar aquí. En esa publicación, se menciona que, Debug.getNativeHeapSize()
devuelve el tamaño de pila. ¿Es este el método exacto que debo usar para detectar mediante programación el tamaño del montón? Si es así, ¿dónde debería registrarlo para obtener el uso correcto de mi aplicación en tamaño de pila?
esto es lo que yo uso:
public static void logHeap() {
Double allocated = new Double(Debug.getNativeHeapAllocatedSize())/new Double((1048576));
Double available = new Double(Debug.getNativeHeapSize())/1048576.0;
Double free = new Double(Debug.getNativeHeapFreeSize())/1048576.0;
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
Log.d("tag", "debug. =================================");
Log.d("tag", "debug.heap native: allocated " + df.format(allocated) + "MB of " + df.format(available) + "MB (" + df.format(free) + "MB free)");
Log.d("tag", "debug.memory: allocated: " + df.format(new Double(Runtime.getRuntime().totalMemory()/1048576)) + "MB of " + df.format(new Double(Runtime.getRuntime().maxMemory()/1048576))+ "MB (" + df.format(new Double(Runtime.getRuntime().freeMemory()/1048576)) +"MB free)");
}