全国咨询热线:021-54902525
您的当前位置: 首页 > 新闻动态 > 常见问题

怎么样改进移动系统的内存管理?

日期:2024-01-06  来源:雷竞技登录

  ① 上层应用程序以object为单位做内存分配和回收,而底层内核以page为粒度进行内存管理。这导致系统不了解应用程序内存使用情况,往往直接分配固定大小的内存预算(heap)。而应用程序实际工作集只占应用程序被分配的heap大小的很小一部分,造成内存资源的浪费;

  ② 当内存资源紧张时,系统会直接杀死应用程序(lmkd),而重新再启动应用程序需要很久,并且应用程序并没有积极使用被分配的内存;

  ① 传统的swap机制不适用于托管语言(比如,Java),因为这类语言运行时的垃圾回收会导致额外的swap操作,让工作集的估计变得困难;

  ② 传统的按需swap不足以满足基于触控响应的移动电子设备,在内存压力下,会造成延时和卡顿;

  基于以上分析,作者提出对移动系统来说,限制内存管理改善的主体问题是底层系统缺少对上层系统语言运行时(比如,AndroidRunTime,ART)的了解。

  本文提出一种新的内存管理机制Marvin。Marvin的核心思想是结合Android系统内核内存管理机制和上层Java运行时,重新设计针对移动系统的swap机制。

  A、Marvin包括三个基本功能:以对象为粒度的工作集估计、提前进行swap以及带书签的垃圾回收机制(Bookmarking garbage collector)。

  Marvin利用这个设计识别提前swap的候选并且将垃圾回收访问与应用程序访问分离;由于缺乏硬件访问位来帮助进行跟踪,Marvin实现ART 解释器和编译器中的软件访问跟踪,因为现代移动语言运行时同时运行解释代码和编译代码。

  Marvin将磁盘交换与回收内存分开,提前swap。根据不同object的状态,划分两类object:saved objects,已经复制到磁盘,但仍然驻留在内存中;reclaimed objects,不再驻留在内存中,只存在于磁盘中。

  垃圾回收器在遍历对象堆以查找未使用的对象时可能会无意中在内存中进行换页导致swap操作。Marvin 通过将修改后的书签垃圾收集器集成到 Android 运行时来解决这一个问题

  B、Marvin包括三个核心设计:存根(Stubs),相当于对象之间的中间层;回收表,运行时和底层系统来进行访问协调swap工作;对象访问干预(Objectaccess interposition),使得系统在运行时可以透明的采取行动。

  Marvin 需要在相互引用的对象之间建立一个间接层,捕获对换出对象(swapped-out)的访问;存根提供该间接层,它是位于 Java 堆中小型伪对象,指向真实对象并且存储真实对象引用的副本。

  Marvin 需要一种让运行时和操作系统协调的方法,告诉 OS 哪些对象可以被回收,防止操作系统回收运行时正在使用的对象。同时共享内存回收表允许这种协调,存储对象的位置和大小,并具有用于锁定的元数据位。

  当应用程序代码访问对象时,运行时需要一种透明的方式恢复换出的对象并且更新工作集元数据。同时,对象访问干预是通过一系列成对解释器和编译器的修改来实现的。具体来说,解释器在执行对象访问时直接行动,编译器围绕对象访问生成额外的ARM64 指令。

  以对象为粒度的工作集估计:对对象设置访问位;扫描访问位;产生工作集(Marvin 在每个对象标头中保留四个字节,并使用它们来存储交换元数据和访问位)。

  带书签的垃圾回收机制:运行时使用对象访问干预来维护存根引用;GC 在不接触底层对象的情况下检测存根和读取引用。

  Marvin 有两个关键组件:(1) Marvin 内核 (MK),修改后的 Android/Linux内核(MK 的唯一职责是通过决定何时以及从哪个应用程序回收内存来平衡应用程序之间的内存分配。),以及 (2) Marvin Runtime (MRT),一种改进的 ART(它执行工作集估计、提前交换和书签垃圾收集)。

  Marvin 可以运行的应用程序数量是普通 Android 的 2 倍以上,同时在带有 Linux swap 的 Android 上,少量分配会使应用程序没办法使用;

  相比起之前优化移动系统内存管理(尤其是swap)的设计,Marvin的创新性在于结合上层高级语言运行时和底层内核对内存管理优化这一经典问题提出针对性设计。尽管Marvin的具体设计取得文章所述的收益有待验证,但作者发现的这一问题确实存在,即软件运行时和底层内核运行存在信息壁垒。通过设计合理的机制来解决这一问题,应该能带来系统性能的有效提升。

  文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

  本帖最后由 VVX 于 2016-9-18 13:15 编辑 1、概述操作

  中的应用分析 /

  ,具有抢先式、多任务的特点,已被应用到众多的微处理器上。虽然该内核功能较多,但还是有不甚完善的地方。笔者在分析使用中发现,内核在任务

  ,具有抢先式、多任务的特点,已被应用到众多的微处理器上。虽然该内核功能较多,但还是有不甚完善的地方。笔者在分析使用中发现,内核在任务

  ,具有抢先式、多任务的特点,已被应用到众多的微处理器上。虽然该内核功能较多,但还是有不甚完善的地方。笔者在分析使用中发现,内核在任务

  详解 /

  的详细介绍分享 /

  总结 /

  英伟达Grace-Hopper提供一个紧密集成的CPU + GPU解决方案

  采用IEEE745格式的浮点+ROM RAM的方式成功实现FFT的设计

  来了来了!数据采集器接热电偶测温度教程,手把手教学~#数据采集器 #电子工程师