• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Android Go Dalvik虚拟机内存参数heapminfree 修改

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Android Go google 2017发布的一个专为入门手机设计的Android版本.

是一个简化版本的Android O(及以上)系统,能够在超低端的Android手机上流畅运行.

量化:

硬件上:512RAM1GB.(Android R不支持512M,并且强烈推荐2GB为Go版本)

软件上:轻量级的安卓系统、Google Go 系列自带应用和Google Play Store(Go版本)

第三方:lite apk

Android Go的最大特点是RAM为小内存.那么由此带来的性能问题将成为一个项目的调试的重点和难点.

本文档只谈论一个问题点:heapminfree 修改->优化可用内存

[dalvik.vm.heapgrowthlimit]: [128m]  (每个应用程序最大内存可分配到内存)

[dalvik.vm.heapmaxfree]: [8m]  (堆最大空闲内存)

[dalvik.vm.heapminfree]: [6M(堆最小空闲内存)

[dalvik.vm.heapstartsize]: [8m]  (表示应用程序启动后为其分配的初始大小)

[dalvik.vm.heaptargetutilization]: [0.75]  (堆利用率)

 

修改后参数

[dalvik.vm.heapgrowthlimit]: [128m]

[dalvik.vm.heapmaxfree]: [8m]

[dalvik.vm.heapminfree]: [512k]

[dalvik.vm.heapstartsize]: [8m]

[dalvik.vm.heaptargetutilization]: [0.75]

堆利用率heaptargetutilization、堆最小空闲内存heapminfree和堆最大空闲内存heapmaxfree这三个值的设置则对垃圾回收(GC)的某些性能有影响

 

[dalvik.vm.heapminfree]: [6M(堆最小空闲内存)

heapminfree:当应用使用内存小于3*heapminfree时,预留空闲内存设为2*heapminfree.

应用占用总内存为=使用的内存+预留空闲的内存

参数解析:multiplier=2.0heaptargetutilization=0.75有关.

堆利用率(heaptargetutilization) 最大空闲内存(heapmaxfree)和最小空闲内存(heapminfree)在代码里的变量名为:utilization,max free ,min free.

(借用网上搜索到的图片,侵权删)

当应用使用内存小于3*6=18MB的时候, 预留空闲内存为2*6=12MB.target_size =使用内存+12M.

修改为[dalvik.vm.heapminfree]: [512K].

当应用使用内存小于3*0.5M=1.5MB的时候, 预留空闲内存为2*0.5M=1MB.target_size =使用内存+1M.

对预留空闲内存几乎没有限制.遵循的规则为:

预留空闲内存=使用内存*(2/3)

修改前:16M使用内存的应用占用的总内存为:6+12=18MB

修改后:16M使用内存的应用占用的总内存为:6+6*(2/3)=10MB

使用内存18MB以下的应用都会节省出内存出来.

优点:节省了RAM空间.

缺点:增加GC次数


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go mux源码分析发布时间:2022-07-10
下一篇:
GoDeeper发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap