Android NDK上是否有相当于VirtualAlloc的东西?

时间:2013-11-01 11:36:04

标签: android-ndk virtual-memory

我正在研究使用android ndk进行虚拟内存管理,并想知道android ndk中是否存在与VirtualAlloc / Free系列函数等效的内容,如果有,我在哪里可以找到一些文档。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

在Android上,所有内存分配都是“虚拟”的,因为除非真正访问内存,否则内存不会被提交。如果我没记错的话,VirtualAlloc来自Windows CE,其中每个进程的内存被人为限制为32 MB(参见http://denniskrabbe.wordpress.com/2009/10/09/windows-mobile-heaps-from-the-large-memory-area/)。在Android上,限制是32位架构的自然局限(iOS最近进入了64位时代)。 JVM堆大小有一些限制,但它们不适用于本机(NDK)内存(请参阅Maximum native memory that can be allocated to an android app

在Android中,就像任何Linux一样,malloc是乐观的,这意味着在malloc成功后你可能会遇到内存不足,请参阅Does malloc lazily create the backing pages for an allocation on Linux (and other platforms)?。另一方面,仿生不提供custom memory allocation hooks作为glibc。