android - 如何理解Android内存管理中的分页和内存映射

标签 android memory memory-management paging virtual-memory

根据这个答案,https://stackoverflow.com/a/17478535/1727934 ,我们可以知道,Android不支持虚拟内存。

然后从维基百科,我们可以知道:

Paging is an important part of virtual memory implementations

https://en.wikipedia.org/wiki/Paging

但是根据官方文档我们可以看到:

The Android Runtime (ART) and Dalvik virtual machine use paging and memory-mapping (mmapping) to manage memory.

https://developer.android.com/topic/performance/memory-overview.html

我对此感到困惑:分页用于虚拟内存,但Android不支持虚拟内存,那么这个分页在Android中意味着什么?

最佳答案

问题在于,历史上术语逻辑内存翻译虚拟内存翻译一直被混为一谈。逻辑内存涉及逻辑页到物理页框的映射。虚拟内存涉及逻辑页到物理页框和磁盘上辅助存储的映射。在 8MB 多用户计算机时代,逻辑内存和虚拟内存总是一起使用。

现在我们拥有具有千兆字节内存的计算机,对在磁盘和内存之间移动页面的虚拟内存的需求正在减少。然而,逻辑内存翻译的好处仍然存在。

内存划分为映射到物理页框的逻辑页的情况仍然存在。

关于android - 如何理解Android内存管理中的分页和内存映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43075767/

相关文章:

java - 将日期文本更改为日期

java - 在android java中加载资源的最佳方法

android - 如何动态设置表布局中列的填充

android - ionic : emulator: ERROR: This AVD's configuration is missing a kernel file! !模拟器:错误:ANDROID_SDK_ROOT 未定义

Java SecurityManager - 在运行时修改之前保护代码

linux - 我可以使用 malloc 在 mmap 文件上分配内存吗

c++ - 如何从进程内部确定 CPU 和内存消耗

java - JVM 进程与 JVM 堆内存使用情况

objective-c - NSMutableArray是否递归释放项目?

java - 如何优化代码以始终使用对 String 的相同引用而不增加内存使用量?