我正在研究使用 android ndk 进行虚拟内存管理,并且想知道在 android ndk 中是否有与 VirtualAlloc/Free 系列函数等效的函数,如果是这样,我在哪里可以找到关于它们的一些文档。
感谢您的时间。
我正在研究使用 android ndk 进行虚拟内存管理,并且想知道在 android ndk 中是否有与 VirtualAlloc/Free 系列函数等效的函数,如果是这样,我在哪里可以找到关于它们的一些文档。
感谢您的时间。
在 Android 上,所有内存分配都是“虚拟的”,即除非真正访问内存,否则不会提交内存。如果我没记错的话,VirtualAlloc 来自 Windows CE,每个进程的内存被人为限制为 32 MByte(参见http://denniskrabbe.wordpress.com/2009/10/09/windows-mobile-heaps-from-the-大内存区域/)。在 Android 上,限制是 32 位架构的自然限制(iOS 最近进入了 64 位时代)。JVM 堆大小有一些限制,但它们不适用于本机 (NDK) 内存(请参阅可以分配给 android 应用程序的最大本机内存)
在 Android 中,就像任何 Linux 一样,malloc 是乐观的,这意味着您可能会在 malloc 成功后遇到内存不足的情况,请参阅malloc 是否懒惰地为 Linux(和其他平台)上的分配创建支持页面?. 另一方面,仿生没有像 glibc那样提供自定义的内存分配钩子。