论文部分内容阅读
智能手机高性能处理器和大容量内存的发展促使应用程序的功能性变得前所未有的复杂。应用程序功能变得复杂的同时,也使得智能手机内存和外存的存储压力变得越来越大。如果没有适当的内存管理策略,必然会影响到设备的用户体验满意度,比如因系统内存不足而导致应用程序的响应时间过长。交换分区是一种可行的低成本内存容量扩增技术。最新调研结果表明,智能手机等移动智能终端,正逐步开始尝试采用交换分区来以较低成本扩充内存容量。除了传统交换分区架构,基于内存压缩和新型硬件的交换分区架构不断出现在移动智能终端上。这些交换分区在架构设计上有很大不同,导致了系统设计人员对它们的测试、比较和修正工作变得更加困难。为了对交换分区进行深入研究,并利用它的特性提高移动智能终端的用户体验满意度,本文完成了如下两大研究工作。第一,本文提出了一种测试框架(SwapBench),方便在移动智能终端系统中测评各类不同交换分区。该框架选取了两个重要但常常被忽视的测试指标:应用程序启动时间和切换时间。SwapBench能检测并配置系统交换分区,并控制和记录应用程序的执行过程。同时本文还借助一组小型基准测试程序交叉验证了SwapBench的正确性。此外,本文首次从体系结构层面、应用程序启动性能和切换性能三个方面对移动智能终端平台上的各类交换分区架构给出了综合性的测试评价。最后,基于SwapBench的实验和测试结果发现,本文给出了在移动智能终端平台上使用交换分区的总结和相关建议。第二,基于SwapBench发现闪存交换分区存在的性能瓶颈,本文设计并提出了一种基于预测的进程级交换分区架构(SmartSwap)。SmartSwap利用用户行为特征以及上下文信息预测最近不可能使用(Most Rarely Used,MRU)的应用列表。然后根据系统可用内存情况,以及设备的使用状态,利用预测结果在系统空闲时提前换出上述应用列表中最近最不可能使用的进程。为了最优地折衷杀死进程和交换进程的代价,SmartSwap采用了基于效能函数的方法控制提前换出页面的数量。本文对SmartSwap进行了综合的测试。基于数据集的测试结果显示,对最近最不可能使用进程预测的准确度在90%以上(高达100%)。基于本文实现的SwapBench工具测得,相比于闪存交换分区的最坏情况,SmartSwap可将应用程序的启动性能提高30%左右。此外,系统后台能额外缓存50%左右的进程,每次提前换出需要消耗的电池电量不超过0.03%。