Android设备上VM参数配置

一般来说,只有设备厂商才关注VM的参数配置,程序开发人员适当了解一些没有什么坏处。下面是dalvik环境下参数的含义


首先来看dalvik.vm.heapgrowthlimit。这个参数控制大多数应用的堆上限,如果应用的heapsize超过了上限就会触发OOM。注意,这里需要区分heapsize和live-object size。前者是一个连续的虚拟空间的大小,后者是已分配对象的大小的总和。考虑到碎片的存在,live-object size小于heapsize。


再来看看dalvik.vm.heapsize。如果应用在manifest中打开了largeheap模式,这个参数将取代heapgrowthlimit成为堆上限。


dalvik.vm.heaptargetutilization实际上是碎片化程度的一个预估,用于估算GC后Heap调整的幅度(使用),默认值为0.75。


dalvik.vm.minfree/maxfree控制单次Heap调整幅度的下限和上限。由于dalvik没有解决碎片化的机制,这个两个数值一般设置较小,用于避免Heap过快增长。


一个容易忽略的配置是lcd_density。这个数值用于为系统的dpi,例如120、160、240、320等,一般会被framework用于选择icon文件。不同分辨率的icon文件在Heap中的bitmap大小会有差异,进而影响Heap的状态。笔者发现有些设备的lcd_density和屏幕实际的ppi有较大的差距,至今不理解其原因。


最后一个容易忽略额的配置是low_mem_mode。对于物理内存较小的设备会打开low memory模式,牺牲性能来换取内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值