[英]How to find memory usage of my android application written C++ using NDK
我正在使用NDK將用C ++編寫的游戲移植到Android。 我需要知道它在運行時消耗了多少內存。 我正在尋找以編程方式查找用C ++編寫的Android應用程序的內存使用情況。
這兩個功能基於JonnyBoy的回答。
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;
}
在Java中,您可以檢查分配/使用的本機內存:
Debug.getNativeHeapAllocatedSize()
Debug.getNativeHeapSize()
看到:
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapAllocatedSize%28%29
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapSize%28%29
Debug.getNativeHeapAllocatedSize()
和Debug.getNativeHeapSize()
返回有關執行的內存分配信息malloc()
只和相關功能。 您可以從C ++輕松解析/proc/self/statm
並獲取VmRSS指標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.