我是靠谱客的博主 能干钥匙,最近开发中收集的这篇文章主要介绍Android mmap+Binder○,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.物理内存和虚拟内存

①物理内存

物理内存是系统硬件提供的内存,是真正的内存。系统的物理内存被划分为许多相同大小的部分,也称作内存页。内存页的大小取决于CPU的架构和操作系统的配置,一般为4KB。

物理内存的使用主要分为以下几方面:

1)内核使用

操作系统启动时,位于/boot目录下的压缩内核文件会被加载到内存中并解压。这部分内容在系统允许期间都会常驻在内存的起始位置。

2)进程使用        

除去内核使用的部分,所有的进程都需要分配物理内存页给它们的代码、数据和堆栈。进程消耗的这些物理内存被称为“驻留内存”,RSS。

3)页缓存page cache       

除去内核和进程使用的部分,物理内存剩下的部分被称为页缓存page cache。引入页缓存的目的是为了提高Linux操作系统对磁盘访问的性能。因为磁盘IO的速度远远低于内存的访问速度,所以Cache层在内存中缓存了磁盘上的部分数据。当数据请求到达时,如果在Cache中存在该数据则直接将数据传递给用户程序,避免了对底层磁盘的操作,提高了性能。

页缓存的大小是在一直动态变化的。当系统内存充足时,页缓存会一直增大;当系统内存不足时,这时如果有进程申请内存,操作系统会从page cache中回收内存页进行分配,如果page cache也已不足,那么系统会将当期驻留在内存中的数据置换到事先配置在磁盘上的swap空间中,然后空出来的这部分内存就可以用来分配了。这就是swap交换。swap交换往往会带来磁盘IO的大量消耗,严重影响到系统正常的磁盘io。出现大量的swap交换说明系统已经快要不行了,需要重点关注。

page cache实际上是内核中的物理内存,

最后

以上就是能干钥匙为你收集整理的Android mmap+Binder○的全部内容,希望文章能够帮你解决Android mmap+Binder○所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部