【问题标题】:Android: why is memory usage for one application drasmatically larger than allowable memory for one processAndroid:为什么一个应用程序的内存使用量比一个进程的允许内存大得多
【发布时间】:2016-11-19 12:09:16
【问题描述】:

据我研究,Android 会为每个进程分配有限的内存,每个进程可能在 16MB 到 24MB 之间。这里是reference

尽管如此,当我在设置中查看一个应用程序的内存使用情况时,我经常看到一个正常的应用程序花费数百兆字节的内存(在一个进程上)。这里有一个我无法理解的冲突。

谢谢:)

【问题讨论】:

    标签: android memory heap-memory


    【解决方案1】:

    NDK 代码可以使用比单个 Dalvik/ART 进程更多的系统 RAM。此外,该应用可能正在使用多个进程,或者它可能正在使用android:largeHeap 来请求高于正常的堆大小。

    【讨论】:

    • 我自己的应用程序也使用了数百兆字节。虽然我不使用本机内存或android:largeHeap 选项。
    • 那么还有其他原因吗?
    • @TrầnKimDự:您使用的库可能使用 NDK 代码、多个进程或请求 android:largeHeap(尽管后两者的格式不正确,恕我直言)。此外,请记住,您的进程不仅仅是分配的内存。根据您测量这些东西的方式,您可能与所有应用程序都从中派生的核心 zygote 进程消耗的内存的一部分相关联。不要将设置用作内存消耗的指南。请改用developer tools
    • 谢谢。我将尝试使用此工具来调查我的内存使用情况:"D
    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 2012-12-24
    • 2012-11-15
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2021-01-25
    • 2011-08-27
    相关资源
    最近更新 更多