在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Android Go 是google 2017发布的一个专为入门手机设计的Android版本. 是一个简化版本的Android O(及以上)系统,能够在超低端的Android手机上流畅运行. 量化: 硬件上:512RAM至1GB.(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.0和heaptargetutilization=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次数 |
请发表评论