gpt4 book ai didi

安卓 NDK : Dalvik Heap and Native Heap - How Separate Between the two

转载 作者:IT王子 更新时间:2023-10-28 23:30:24 28 4
gpt4 key购买 nike

我知道 Android 平台中有 Dalvik(JVM) 堆和 native 堆。而且 Dalvik GC 在 native 堆上没有工作。但我不确定这是如何工作的,我的意思是 Android 操作系统如何将它们分开?

可能的情况1:由单独的内存硬件组成(我不太相信)

可能的情况 2:Android OS 的两个堆都有 FIXED 内存量

可能的情况3:Android OS必须在必要时分配一部分Dalvik内存堆变成native heap,所以native heap和Dalvik heap的大小是灵活的。

哪一个是真的,或者我没有提到的可能性?

最佳答案

native 堆由 dlmalloc() 管理,它使用 mmap() 和标准调用(如 sbrk())的组合来分配内存。托管(“Dalvik”)堆(大部分)是由 mmap() 分配的一大块。它全部运行在 Linux 内核之上,所以如果你了解 Linux 内存管理,那么你就已经知道低级部分是如何工作的。

您可以在 this post 中阅读有关 Dalvik 如何将空页面从托管堆返回到操作系统的更多信息。 .

编辑:有关 Android 内存管理信息的规范帖子是 this one .我不认为它直接回答了你的问题,但它有很多很好的信息和信息网站的链接。

关于安卓 NDK : Dalvik Heap and Native Heap - How Separate Between the two,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21520110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com