这些前后端性能指标,面试一问我就懵了_评估后端工程师的量化指标

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

一般有哪些方式可以改善加载速度带来的用户体验呢?

减少HTTP重复请求

性能黄金法则:只有10%20%的最终用户响应时间花在了下载HTML文档上,其余的80%90%时间花在了下载页面中的所有组件上。因此,改善响应时间最简单的途径就是减少HTTP请求的数量,并且去除不必要的重复请求。

使用CDN
HTTP请求和响应的时间会受到离 web 服务器距离的影响。如果用户离应用程序的web服务器离用户更近,那么多个HTTP请求的响应时间将缩短。

CDN(内容发布网络)是一组分布在多个不同地理位置的Web服务器,可以选择网络阶跃数最小的服务器,或者具有最短响应时间的服务器,用于更加有效地向用户发布内容。

减少下载的资源
比如通过压缩图片的方式,减少图片的大小,缩短下载的时间。另外可以通过比对客户端与服务端差异的方式,快速展示本地的缓存资源,减少同样内容的重复下载。

2、电量

Android的很多特性都比较耗电(屏幕、GPS、唤醒机制、CPU、连网等的使用)。

3、流量

目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分。APP 使用过程中,常见的网络流量严重消耗的原因主要有,调用响应慢,调用失败等各种情况。

通常从哪些指标去衡量流量消耗的状态是否正常呢?

应用首次启动流量提示;

应用处于后台,连续运行2小时的静默流量;

应用处于前台,高负荷运行时的流量峰值。

一般有哪些原因导致流量被大量消耗呢?

资源太多

图片太大

重复请求

日志上传

埋点数据

4、Crash和ANR

Crash的原因一般有:空指针、内存泄漏、数组越界、调用了高版本的API。

Android应用程序,如果主线程(即UI线程)在超时间内对用户输入时间没有处理完毕,就会出现Application Not Responding弹出框,用户需要选择等待或者强制关闭来杀死进程。

5、FPS

就是动画帧率。帧就是指动画或视频的“画面”,1幅画就叫做“1帧”,帧数就是在1秒钟时间里传输的图片的量,也可以理解为图形处理器每秒钟能够刷新几次,通常用FPS(Frames Per Second)表示。

每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象,高的帧率可以得到更流畅和逼真的动画,因此每秒钟帧数 (FPS) 越多,显示出来的动作就越流畅。

那么什么是合理的FPS呢?

帧率达到60FPS以上,人眼主观就感受不到差别了。所以一般以60FPS作为衡量标准,即要求每一帧刷新的时间小于16ms,这样才能保证滑动中平滑的流畅度。

02 后端关注点

响应时间:接口从请求到响应、返回的时间。

并发用户数:同一时间点请求服务器的用户数,支持的最大并发数。

内存占用:APP的内存开销。

吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。

错误率:失败的事务数/事务总数。

资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O。

图片

1、响应时间

指的是客户发出请求到得到响应的整个过程的时间。在某些工具中,请求响应时间通常会被称为TTLB(Time to laster byte),意思是从发起一个请求开始,到客户端收到最后一个字节的响应所耗费的时间。所以也可以理解成,响应时间=网络响应时间+应用程序响应时间。

因此在大部分公司的项目实际运作中,会把性能测试分为两部分,APP 前端的响应时间、后端接口请求和返回的时间,即分别是系统级性能测试和接口级性能测试。

网络传输时间:T3+T4+T5+T6

应用服务器处理时间:T5+T7+T8

数据库服务器处理时间:T7+T8

响应时间 = N1+N2+T3+T4+T5+T6+T7+T8

那么什么是合理的响应时间呢?

互联网上对于用户响应时间,有一个普遍的标准,2-5-10原则

详细来说,就是:

2秒之内得到响应,会认为系统响应的很快

5秒之内得到响应,会认为系统响应的速度还不错

10秒之内得到响应,会认为系统响应的速度很糟糕

超过10秒还未得到响应,会认为系统是没有响应的

2、CPU

在Linux系统下,CPU利用率分为用户态、系统态、空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。

CPU可能出现的问题是,持续CPU占用较高、设备发热、使用非常卡顿、程序卡死。

什么情况下会消耗CPU 呢?

就是大量的运算

比如某个Activity或者方法有一直不停的运算消耗CPU(比如:不停止的while 或者for 循环)

一般从哪些指标监控CPU情况呢?

设备的应用在空闲时间,CPU的占用情况

应用使用时,CPU的占用走势,持续变化

CPU的占用峰值

3、内存占用

Android系统中,每个APP进程除了同其他进程共享(shared dirty)外,还独用私有内存(private dirty),通常使用PSS(=私有内存+比例分配共享内存)来衡量一个APP的内存开销。

移动设备的内存资源有限,因此为每个APP进程分配的私有内存也是有限制的。APP 的内存常见问题有内存占用过高、内存泄露,以及内存溢出。

内存泄漏:程序在向系统申请内存分配后,使用后未释放。

内存溢出:程序向系统申请的内存空间超出了系统本身的内存,会出现崩溃,也就是客户端的carsh。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值