2017-02-03 1 views
0

Ich versuche, ein Leck mit dieser nativen Methode aus meiner App zu verursachen. Ich kann sehen "Methode zurückgegeben". in meinen Logs, aber ich scheine keinen RAM zu verlieren. Ich benutze (MemoryInfo.availMem/1048576L) um die Verwendung zu verfolgen.Versuchen, ein natives Leck zu verursachen

JNIEXPORT jstring JNICALL Java_com_app_native_Wrapper_causeLeak(JNIEnv *je, jclass jc, jint bytes) { 
    char *p_array = calloc(bytes,sizeof(char)); 
    return (*je)->NewStringUTF(je, "Method returned."); 
} 

Und versuchen 10MB Leck über diese Methode zu verursachen:

Wrapper.causeLeak(10 * 1024 * 1024) 

EDIT:

Ich tue dies, weil ich meine App in einer Situation für wenig Arbeitsspeicher testen möchten.

+0

Ok, das sollte ausreichen, um ein Leck zu verursachen. Nicht sicher, warum du das machst oder was deine Frage ist. –

+0

Ich mache das, weil ich meine App in einer Situation mit wenig Speicher testen möchte. –

+0

Ich bin mir nicht sicher, ob MemoryInfo.availMem die native Verwendung berücksichtigt oder ob es nur Java-Heap-Nutzung ist. Sie können sich auch https://developer.android.com/reference/android/os/Debug.MemoryInfo.html als alternative Informationsquelle ansehen. –

Antwort

Verwandte Themen