android 调整APP内存大小

编程入门 行业动态 更新时间:2024-10-25 04:18:00

android 调整APP<a href=https://www.elefans.com/category/jswz/34/1764416.html style=内存大小"/>

android 调整APP内存大小

修改哪里可以使单个应用分配的内存加大呢?答案很简单,请看下图:
 

第一个是堆分配的初始值大小,这个值影响到应用的流畅性和整体ram小号。值越小,系统ram小号越慢;值越大,程序更流畅。
第二个是极限堆大小,正常情况下第三个的大小不会超过第二个的值,否则将引发oom。
第三个是使用大堆时,极限堆大小。在android开发中,如果要使用大堆,需要在manifest中制定android:largeHeap为true。这样dalvik.vm.heapsize能打到最大。
第四个是内存利用率的百分比。当实际利用率偏离这个值时。虚拟机会在GC的时候调整内存堆大小,让实际占用率向这个百分比靠拢。
剩余的是dalvik GC时使用的参数。

dalvim GC策略是:

1.在一次GC后,根据当前Heap中已分配的内存大小除以dalvik.vm.heaputilization(0.75),得到一个目标值。

2.如果目标值不在(已分配的值+dalvik.vm.heAPMinfree)到(已分配的值+dalvik.vm.heapmaxfree)这个区间,即取区间边界值做为目标值(运行一段时间后第1步得到的目标值肯定会超过这个范围)。

3.虚拟机记录这个目标值,当做当前允许总的可以分配到的内存。同时根据目标值减去固定值(200~500K),当做触发GC_CONcurrent事件的阈值。

4.当下一次分配内存,分配成功时。重新计算已分配的内存大小;若有达到GC_CONCURRENT的阈值,则产生GC。

5.当下一次分配内存,开始分配失败时。则会产生GC_FOR_ALLOC事件,释放内存;然后再尝试分配。

可以通过调整dalvik.vm.heapminfree 和dalvik.vm.heapmaxfree属性的值,减少GC_FOR_ALLOC和GC_CONCURRENT的次数,如果这两个值设置的过大,则会导致一次GC的时间过长,从而会看到明显的卡顿现象,设置的值既要使GC的次数减少,也不能是一次GC的时间过长。

更多推荐

android 调整APP内存大小

本文发布于:2024-03-04 10:11:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1708980.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内存大小   android   APP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!