计算机体系结构示意图内存整理:
内存结构和访问速度
连续内存分配问题
1.内存碎片问题
2.分区的动态分配
3.压缩式碎片整理 将多个碎片内存移动到一整块连续内存中
4.交换式碎片整理 将内存中的数据暂时移动到磁盘中
内存碎片问题
(1)空闲内存不能被使用
(2)外部碎片 内存整理:在分配单元间的未使用内存
(3)内部碎片内存整理:在分配单元中的未使用内存
分区的动态分配 : 当一个程序准许运行在内存中时,分配一个连续的区间。分配一个连续的内存空间给运行的程序以访问数据
非连续内存:分段,逻辑地址空间连续,物理地址不连续
非连续内存:分页 划分物理内存至固定的大小帧
划分逻辑地址空间至相同的大小页
建立方案:转换逻辑地址至物理地址
物理地址 = 页号 * 页的大小 + 偏移
内存从1G到12G,为何手机系统总是占去一半?
【智友问答】从1G到12G 为何手机系统总是占去一半?
2019年手机界将手机的运行内存标准提高到了12GB,其中不乏小米黑鲨2、米9、努比亚红魔3、Vivo iQOO、一加7 Pro等大牌厂家;要知道2017年的笔记本标准配置推荐内存也才是8GB,到如今为什么手机的运行内存开机后系统就会占用一半以上呢?那么比较就用现在使用的华为mate20x给大家分析一下吧。
HUAWEI Mate20X 5G版运行内存8GB,使用操作系统EMUI9.1.1,Android版本9;咱们来看看这款手机的内存使用情况。
开机运行内存使用了4.29GB,6小时平均运行内存使用量4.51GB,12小时运行内存平均使用量4.61GB。虽然一开机运行内存的使用率就占用了1半左右,微信、微博、游戏等应用正常使用的情况下内存管理并没有过激的增长,整理来看还是非常稳定的。这么看来,内存开机就占用一半根本没有惊慌的必要,使用完全没有问题,那么到底是哪些应用占用了运行内存呢?
从按下Power键开始,手机CPU得到供电,加载BOOT ROM,然后第一时间将BootLoader引导程序写入运行内存,然后依次引导Linux kernel与Android Service;最后是各类开机启动的APP程序。
从这张图可以看出,开机后Android操作系统占用的运行内存零零散散加在一起已经超过了3GB,之后预装的软件、小组件、动画效果等等也会占用很多运行内存,这种情况下Android手机开机后占用一半左右的运行内存就不显得太多了,而且只要系统优化的好,APP正常开启关闭,6G\\8G内存使用起来也不会出现卡顿。
至于很多朋友说iPhone为什么不卡顿,其实iPhone的不卡顿是系统封闭与动画岩石相结合的结果,而Android则是开发环境的结果。环境不一样,不能同日而语,而且早些年当Android卡顿时通过清理后台可以短时间恢复系统流畅运行,而iPhone卡顿只能通过关机重启来真正释放被管理的内存了。