性能测试总结

【定义】

软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。

【为什么要做软件性能测试】

验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

【什么时候做性能测试】

一般在系统功能稳定没有大的缺陷之后开始执行。但前期准备工作可以从系统需求分析时就开始:性能目标制定、场景获取、环境申请等。

【性能测试关注的几个指标】

CPU,CPU使用率过高,会使整个手机无法响应用户,整体性能降低,影响用户体验,也容易引起ANR等问题。

内存,内存占用偏高,尤其是内存泄露是Android开发者十分关心的问题,因为内存泄露可能导致的后果是应用进程直接被kill掉。

流量,对于APP用户来说,流量=钱,通过流量的实时监测,帮开发者分析应用的资源加载大小、网络请求是否合理。

启动时间,App启动到首页加载完成的耗时,如果太慢,直接导致用户卸载App。

包大小,安装包中资源冗余、文件未做压缩,都将导致APK包偏大,增加下载流量和安装时间。

流畅度,应用的帧率和流畅度是最直接影响用户体验的。通过帧率和流畅度曲线,帮开发者分析是否存在UI问题。

【Android的应用性能的指标主要有】

  1. 布局复杂度:布局复杂会导致布局需要更长的时间,从而导致进入应用慢、页面切换慢;
  2. 耗电量:耗电量大会导致机器发热、缩短机器的有效使用时长;
  3. 内存:内存消耗大会导致频繁GC,GC时会暂停其它工作,导致页面卡顿;内存泄露会导致剩余可用内存越来越小;内存不足会导致应用异常;
  4. 网络:频繁的网络访问会导致耗电和影响应用的性能;网络交互数据大小会影响网络传输的效率;
  5. 程序执行效率:糟糕的代码会严重影响程序的运行效率,UI线程过多的任务会阻塞应用的正常运行,长时间持有某个对象会导致潜在的内存泄露,频繁的IO操作、网络操作而不用缓存会严重影响程序的运行效率。

【测试方法】

一、使用adb命令进行测试:

1.CPU:adb shell top   https://blog.csdn.net/cdaron/article/details/81041872

Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [-t ] [ -h ]

    -m num  Maximum number of processes to display. 最多显示多少个进程

    -n num  Updates to show before exiting.  刷新次数

    -d num  Seconds to wait between updates. 刷新间隔时间(默认5秒)

    -s col  Column to sort by (cpu,vss,rss,thr). 按哪列排序

    -t      Show threads instead of processes. 显示线程信息而不是进程

    -h      Display this help screen.  显示帮助文档

cpu打印信息部分字段含义:

User 处于用户态的运行时间,不包含优先值为负进程

Nice 优先值为负的进程所占用的CPU时间

Sys  处于核心态的运行时间

PID  进程id

PR   优先级

CPU% 当前瞬时CPU占用率

S    进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程

#THR 程序当前所用的线程数

UID  进程所有者的用户id

 

用户态和核心态区别:

内核态(Kernel Mode):运行操作系统程序

用户态(User Mode):运行用户程序

当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

 

要监测单个应用,例如针对微博的CPU占用率:

监测一次微博的CPU占用情况:adb shell top -n 1 | grep com.sina.weibo

10秒刷新一次显示CPU占用情况:adb shell top -d 10 | grep com.sina.weibo

实时监测微博的CPU占用情况:adb shell top |grep com.sina.weibo

硬中断和软中断:

(1) 硬中断

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值