2013-06-14 15 views

cevap

6

iki işlev görür. malloc() ve ilgili işlevler sadece tarafından gerçekleştirilen bellek ayırmaları konusunda

static long getNativeHeapAllocatedSize(JNIEnv *env) 
{ 
    jclass clazz = (*env)->FindClass(env, "android/os/Debug"); 
    if (clazz) 
    { 
     jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapAllocatedSize", "()J"); 
     if (mid) 
     { 
      return (*env)->CallStaticLongMethod(env, clazz, mid); 
     } 
    } 
    return -1L; 
} 

static long getNativeHeapSize(JNIEnv *env) 
{ 
    jclass clazz = (*env)->FindClass(env, "android/os/Debug"); 
    if (clazz) 
    { 
     jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapSize", "()J"); 
     if (mid) 
     { 
      return (*env)->CallStaticLongMethod(env, clazz, mid); 
     } 
    } 
    return -1L; 
} 
+3

Aslında bu java yöntemleri yerel yöntemlerin kendileridir. Http://androidxref.com/source/xref/frameworks/base/core/jni/android_os_Debug.cpp (cpp-source) 'a göre "mallinfo()" yi kullanabilir ve "uordblks" ('uordblks') için değerleri okuyabilirsiniz. getNativeHeapAllocatedSize() 've' usmblks' (getNativeHeapSize() ') –

+0

@ super-qua, Tank Çok fazla! – CAMOBAP

0

Debug.getNativeHeapAllocatedSize() ve Debug.getNativeHeapSize() dönüş bilgileri. C++ 'dan /proc/self/statm kolayca ayrıştırabilir ve VmRSS metrik değerini alabilirsiniz.

See details here

İlgili konular