通用技术 性能测试需要关注的内存标准是 PSS?VSS?RSS?USS?

剪烛 · 2014年12月12日 · 最后由 alfred.kao 回复于 2017年12月05日 · 5197 次阅读

附上几个内存的含义
http://hubingforever.blog.163.com/blog/static/17104057920114411313717/

今天跟开发讨论这个,差点被洗脑了……开发的意思是,内存这个是系统内核的事情,不应该过多关注这个。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

RSS 较大并且不是优先级别较高的进程, 很容易被配置低的系统给 kill 掉.
这个还是要关注的.

这个么,物理内存,虚拟内存等,但这个关注从 app 角度来讲看不同的切入点吧。

另外你们开发这样说肯定是完全不懂的说法。。。。

不过性能这个东西主要的关键在于场景的设计,然后去分析。获取的方式现在已经大同小异了。

testin 上提供的 PSS 数据 百度和腾讯提供的好像是 RSS

#2 楼 @monkey 好像除了 uss 都包含共享库的内存

#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 的时间对应以便分析

#10 楼 @sandman 你好,想获取 PSS 的值,但是 adb shell procrank 之后,显示 not found procrank,这个 procrank 命令该怎么安装

#11 楼 @diao2007 取 Pss 不建议用 procrank,可以用 dumpsys meminfo -c|grep proc
逗号间隔最后一列数字就是了,倒数第二列是 PID

#12 楼 @sandman 我是这样取得 adb shell dumpsys meminfo +packagename|grep 不知道是取 native 还是 dalvik,对应这个 dumpsys meminfo -c|grep proc 取得 pss 值是对应 native 还是说是 dalvik 呢?还是说那个都不是?

#11 楼 @diao2007 。。。。。procrank 怎么安装你 google 下就都有了啊。作为一个技术人员,不要伸手啊!!!

#13 楼 @diao2007 dumpsys 里面的数据已经很明确的告诉你哪些是 native 的,哪些是 dalvik 的了么不是

#13 楼 @diao2007 dumpsys meminfo -c 取的是进程总共的 PSS

不二家 回复

procrank 在 android 源码下有,make 后在这个路径下 out/target/product/产品/symbols/system/xbin/procrank

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册