app性能指标及检测

原文网址: http://blog.sina.com.cn/s/blog_b9e81be90102x65p.html

1、硬件环境支持:

IOS:

iPhone4/iPhone4s、 iPhone5/iPhone5s、 iPhone6/iPhone6 Plus、iPhone6s/iPhone6s Plus

Android:

CPU:高通/海思/三星 Exynos/nVIDA Tegra/联发科 MTK单核主频1G以上

RAM: xG以上

屏幕分辩率支持:800*480 960*540 960*640 1280*720 1920*1080

2、软件环境支持:

IOS:IOSx.0或更高版本

Android: Android x.0或更高版本  

3、性能指标:

1.安全:采用3DES加密,无明文传送用户相关信息,

2.启动时间:冷启动和热启动。APP启动时间不超过5秒

2.CPU占用:单核1G,cpu占用率不超过5%

3.内存占用:整个APP内存占用,不超过16M

4.流量耗用:待机情况下,24小时流量不超过300K

5.电量耗用:待机状态下,24小时电量消耗不超过500ma6.连接超时:连接超时不超过20秒

7.稳定性能:待机和连续操作超过48小时后,无闪退、卡顿、崩溃、黑白屏、网络劫持、不良接口、内存泄露

8.网络性能:支持2G,3G,4G网络和wifi网络,网络信号不稳定、网络连接被重置时,无闪退、卡顿、崩溃、黑白屏和内存泄漏。

9.页面加载时间:

10. 页面渲染(每秒帧数FPS)

4、应用:

1).cpu

cpu检测我们要分3种情况:

1.在空闲时间的消耗,基本没大应用使用cpu

2.在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况

3.在高负荷的情况下看CPU的表现,我定义这个高负荷,cpu占用应是在80%以上

1.1 如何查看CPU的使用值

使用命令:adb shell dumpsys cpuinfo apk包名

app性能指标及检测_第1张图片

从上图我们可以看出:6.4%是针对这个CPU的占用率是6.4%,标红的地方5.2%占用率是用户使用的,1.1是内核的占用率,这个数只是针对1核来说,

问题:现在手机都是多核的了,那这样的值也不会太准确,那怎么做?

经验:一般这种取值的,我在测试的时候,会多采集几次,求平均值

上面数据太多了,我们还可以可以用下面这个命令,和top命令,获取单个数据

adb shell dumpsys cpuinfo |grep packagename

app性能指标及检测_第2张图片

2).内存篇

内存的方式和cpu类似,我们通过多次采集,得出内存值,看内存是否异常,那如何获取内存值

a)命令

1.adb shell dumpsys meminfo

2.adb shell meminfo PID

手机运行速度就和内存有很大关系,我记得以前的同事可以研究这个内存,还专门成立了一个小组,可见这个水还是挺深的,而且自己也是知会一点,着重有几个指标需要理解:

vss,虚拟内存,每一个应用时一个java虚拟机,系统会分配一个内存,内存每做一个操作,这样是控制内存的大小,但是不会大于最大限制,虚拟内存就就消失掉,我们比较关心

Rss 物理内存(包含共享库的内存),应用实际占用的内存,

pss实际使用的物理内存(比例分配共享占用内存) 如3个进程,那么进程的消耗就应该是除以3,才表示一个

USS 进程中独自占用内存

USS针对某个进程开始有内存泄漏的情况,是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放

这个博主我觉得讲的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983

app性能指标及检测_第3张图片

n内存要多次测试

使用PID的方式查看:

app性能指标及检测_第4张图片

我们关注的是:Heap size 是实际用到的内存Heap alloc :是实际分配的值

问题:但是你可以发现alloc

内存我们还可以查看他的单个应用程序最大的内存限制

adb shell getprop |grep heapgrowthlimit

另外一种方式:我们还可以使用procrank工具,就可以查看内存值

b)分析内存泄漏:

adb shell

top -d 1 –n 4 | find "进程名"

-d指定刷新间隔时间;-n指定刷新次数后退出

想要将抓取的内容保存到本地可以用如下命令:adb

shell top -d 1 -n 4 | find "com.subject.zhongchou"

>>C:\Users\58\Desktop\log.txt

我们只需要记录”RSS实际使用内存”这列的数据,将他画成折线图,分析内存波动状态,就是上图中画红圈部分数值。分析内存直线图:一般抓取每次抓取200—300个数据,抓取3-5次,然后查看内存波动情况,在一定范围内的上下起伏波动证明内存没有泄露,如果出现内存数值持续增长,没有回落现象说明可能存在内存泄露

3).流量

大神说可以使用adb shell cat/proc/“+PID+”/net/dev 的命令来查看流量数

但是我觉得这样不准确,我获取流量的方式是通过抓包的方式,在一个操作内,看流量中的消耗,可以借助wireshork这个工具来帮忙

4)总结:

做性能测试的方式有两种:1.竞品分析2.版本对比这是现在很多公司使用的一种方式

你可能感兴趣的:(app性能指标及检测)