簡體   English   中英

如何使用NDK查找我的Android應用程序編寫C ++的內存使用情況

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM