android虚拟机内存管理,Android虚拟机内存管理机制的分析及性能优化

摘要:

Android系统是目前最主流的移动终端操作系统.从Android 5.0开始,新的Android运行时(Android Runtime, ART)通过预编译技术(Ahead-Of-Time compile)和更为高效,细粒度的垃圾回收机制(Garbage Collection, GC)大幅改善了系统的运行速度.但是原生GC算法依然存在暂停时间过长或触发过于频繁的问题,使得Android设备出现系统卡顿等性能问题,影响了用户的体验.本文深入研究了ART运行时的内存管理机制.通过分析ART运行时中对象的分配和垃圾的回收过程,本文发现:在垃圾回收结束时,系统对堆的预留内存空间会重新设置一个定值,如果对象的分配需求很强烈,固定的预留空闲内存就会很快用光,这是造成GC触发次数增多的因素之一.本文针对这个问题,重新设计并实现了优化算法.新算法主要根据应用最近的GC频率以及GC暂停时间,GC执行时间,GC回收内存和应用已使用内存等信息,动态的调节GC预留空闲内存的大小.通过此改良算法,在不降低GC运行性能的情况下,能有效降低GC触发的次数,从而达到优化的目的.本文利用Monkeyrunner自动化测试工具来模仿用户触屏行为以测试本文算法对于几款常见Android应用的优化收益,测试结果表明,对于GC触发比较频繁的应用程序,在不影响单次暂停时间的前提下,优化的算法最高能够降低20%左右的GC触发次数.通过Oxbenchmark对系统垃圾回收性能的测试表明,本文所提出的算法使得GC次数减少了47.93%,而完成创建对象任务所需的总时间减少了24.55%.CaffeineMark和Quadrant Standard的测试表明本文的优化没有给Android的整体性能带来额外的开销.

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值