关键词:
内存压缩
移动系统
智能手机
数据移动
摘要:
随着移动设备的发展,操作系统以及应用程序的容量都在逐渐增大。相比之下,移动系统有限的内存资源渐渐成为了系统发展的瓶颈。内存压缩技术开始被广泛应用于智能手机上,以满足日益增长的内存容量需求。为了避免内存解压时的读取放大,在现代系统中内存都是逐页压缩的,但这样会导致压缩效率的降低。在高内存压力下,快速页面需求和低效率的内存压缩之间的冲突导致了糟糕的用户体验。基于此,本文发现了合并压缩内存页面的潜力,并提出了一种动态粒度的内存压缩框架,Ant。通过合并压缩,充分挖掘了内存压缩在粒度方面的潜力。据我们所知,这是实现大粒度内存压缩的第一次努力。这种动态粒度的内存压缩与移动操作系统的应用启动非常契合。本文通过分析应用程序的启动流程,发现了在应用程序热启动阶段会进行大量的压缩内存访问,并且这些内存页有着良好的可预测性。通过利用这种应用程序的启动页特性,可以有效的避免合并压缩内存时的读取放大。本文贡献点主要有如下三个:·本文分析了移动操作系统的访问延迟模型,提出了同步内存回收是影响内存压力下用户体验的关键因素。然后从用户体验,应用行为分析,系统内存压缩流程等方向,详细阐述了同步内存压缩的低效是如何对用户体验产生巨大的影响。同时分析了商用Android智能手机内存压缩的效率,观察到现有的内存压缩在粒度方面具有相当大的潜力。·本文表明,Android系统的内存也可以进行大粒度的压缩,这一点无论是学术界还是智能手机制造商都没有得到很好的关注。从而本文提出了一种适用于Android智能手机的自适应内存压缩框架Ant。在Ant设计中,既不需要修改应用程序代码,也不需要修改硬件基础设施,即可实现移动操作系统下的高效内存压缩。·本文从数据移动的角度出发全方面评估了动态粒度的内存压缩系统,提出了一套系统性的数据移动优化方案。从压缩/解压缩流程以及压缩内存区的管理三个主要流程优化了数据移动问题,这有效的减少Ant实现过程中的内存以及CPU开销。本文在真实的移动操作系统平台上实现Ant,并且针对于实现过程中的架构实现以及数据管理等技术都在本文中进行了详细的介绍。最后通过在真实Android手机上的实验,结果表明,本文提出了高效内存压缩架构与目前最先进的压缩机制相比,应用的启动延迟减少了 26.1%。同时,用户体验得到全面提升。