附上几个内存的含义
http://hubingforever.blog.163.com/blog/static/17104057920114411313717/
今天跟开发讨论这个,差点被洗脑了……开发的意思是,内存这个是系统内核的事情,不应该过多关注这个。
RSS 较大并且不是优先级别较高的进程, 很容易被配置低的系统给 kill 掉.
这个还是要关注的.
这个么,物理内存,虚拟内存等,但这个关注从 app 角度来讲看不同的切入点吧。
另外你们开发这样说肯定是完全不懂的说法。。。。
不过性能这个东西主要的关键在于场景的设计,然后去分析。获取的方式现在已经大同小异了。
pss
testin 上提供的 PSS 数据 百度和腾讯提供的好像是 RSS
#5 楼 @gaoxing200851 共享库分两种 一种是自身带的共享库, 比如 QQ 百度地图都自带了自己的 so 文件. 这个大小应该计算到自身的内存中, 需要关注. 而系统的共享库就不用统计在内了.
一般不用在意的这么严格. app 因为内存不足被 android OOM 杀掉的情况很多, 这类的场景测试覆盖了就没太大问题. 相信一般的 app 内存占用还不是大. 现在的场景都是很碎片化的. app 被不停的前后台切换. 偶尔还会别系统回收掉.
百度云平台上下载的百度测试助手.apk 蛮好用的___^ 我会乱说么……
#6 楼 @seveniruby 那您建议是看那个参数呢?如果用 adb shell dumpsys meminfo 中 Davilk 对应的 Heap
Alloc 靠谱吗?
一般都是 Pss 为准,我采用的评估方式都是监控 + 用例(脚本或 monkey),测试整个系统就是 Pss 峰值降序排列,和极值差(最大值 - 最小值)降序排列。对于系统优化思路是:Pss 峰值越高,可优化性越大;极值差越大内存泄露的可能性越大(当然要排除正常逻辑缓存数据,像在线视频类的 app)
对于 app 评估,对比下竞品的 Pss 占用情况,给极值差定个预警值,超过预警值就要分析下原因,以便筛查内存泄露。
建议监控获取数据:cpu,内存,显示的 activity,date 时间。这样分析的时候就可以知道每个获取数据的时刻界面显示状态,时间也可以和 log 的时间对应以便分析
procrank 在 android 源码下有,make 后在这个路径下 out/target/product/产品/symbols/system/xbin/procrank