同一个应用在不同条件的内存占比

实际项目中有遇到这个问题,说下个人理解和验证结果


不同分辨率机器对内存的影响

对同一个应用,在不同分辨率下测试内存,不一样时显而易见的

下面,我们看下,相同apk,在不同机器上,但分辨率相同的情况下的内存,占用策略。为了保证apk足够简单,我们测一下helloworld应用

分辨率相同,机器不同对内存的影响


影响内存的因素:

 硬件因素

分辨率和可用内存上限

1:android是一个显示系统,显示的大小是用像素点表示,每个像素点的信息是分配在内存的(包括Native内存,java Heap内存等从底层到上层的一系列对象内存分配)

像素不同,因此进程所用内存不同

2:可用内存上限较低时,会频繁触发虚拟机的垃圾回收,回收当前应用状态不适用的对象

二 软件因素:

主要是内存的分配策略和回收策略,主要由以下几个方面

1:虚拟机的堆内存的分配策略不同,有大有小

2:虚拟机的堆内存的回收策略不同

3:内部driver暂用内存不同,依赖于驱动实现

4:底层c库代码占用不同

以上不同,可以参考dump的helloworld的内存信息,都有体现(

左图:机器C(720x1520) 右图:机器D(720x1520)

内存和流畅性是一个整体的性能指标,有的系统是用空间换时间,追求更好的流畅性和响应速度;有的系统是追求较小的内存资源占用,以时间换空间。

[我的知乎](https://www.zhihu.com/people/jdf-88/answers)

你可能感兴趣的:(同一个应用在不同条件的内存占比)