软件测试之性能测试(ios)——获取fps(流畅度)
FPS是测量用于保存、显示动态视频的信息数量。通俗来讲就是指动画或视频的画面数。例如在电影视频及数字视频上,每一帧都是静止的图象;快速连续地显示帧便形成了运动的假象。每秒钟帧数 (FPS) 愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低FPS是30。某些计算机视频格式,例如 AVI,每秒只能提供15帧。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁,不连贯,对图像显示效果和视觉感观产生不好的影响。
FPS的获取通常是基于CADisplayLink这个类做FPS计算的,CADisplayLink是CoreAnimation提供的另一个类似于NSTimer的类,它会在屏幕每次刷新回调一次。既然CADisplayLink可以以屏幕刷新的频率调用指定selector,而且iOS系统中正常的屏幕刷新率为60Hz(60次每秒),那只要在这个方法里面统计每秒这个方法执行的次数,通过次数/时间就可以得出当前屏幕的刷新率了。
- (void)startMonitoring {if (_link) {[_link removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];[_link invalidate];_link = nil;}_link = [CADisplayLink displayLinkWithTarget:self selector:@selector(fpsDisplayLinkAction:)];[_link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
}#pragma mark - FPS
- (void)fpsDisplayLinkAction:(CADisplayLink *)link {if (_lastTime == 0) {_lastTime = link.timestamp;return;}_count++;NSTimeInterval delta = link.timestamp - _lastTime;if (delta < 1) return;_lastTime = link.timestamp;_fps = _count / delta;_count = 0;
}
值得注意的是基于CADisplayLink实现的 FPS 在生产场景中只有指导意义,不能代表真实的 FPS,因为基于CADisplayLink实现的 FPS 无法完全检测出当前 Core Animation 的性能情况,它只能检测出当前 RunLoop 的帧率。但要真正定位到准确的性能问题所在,最好还是通过Instrument的Core Animation来确认
参考文章
1、 https://www.jianshu.com/p/4091870ca3f0
软件测试之性能测试(ios)——获取fps(流畅度)相关推荐
- 软件测试之性能测试面试题合集
软件测试之性能测试面试题合集 1.描述一下你们公司的性能测试流程? 1)分析性能需求(用户使用最频繁的场景进行测试),确定性能指标(例如:事务通过率100%,top99%是5秒,最大并发是2000,C ...
- 鸿蒙os1.0.1更新,鸿蒙OS 1.0.1更新,微内核代源码相当于iOS,4GB流畅度媲美12GB
原标题:鸿蒙OS 1.0.1更新,微内核代源码相当于iOS,4GB流畅度媲美12GB 众所周知在谷歌不再给华为手机授权GMS服务之后,华为发布了自研系统鸿蒙系统(HarmonyOS),同时带来基于该系 ...
- 谈性能测试-FPS流畅度
FPS:frames per second,每秒的帧数,一般在Android app里,1秒钟60帧是比较流畅的. 过渡渲染:描述的是屏幕上的某个像素,在同一帧的时间内被绘制了多次. 分析页面卡慢的方 ...
- 华为鸿蒙运行是苹果几倍,鸿蒙2.0大战iOS,论流畅度苹果不是华为对手
智能手机十多年的历史留下一个非常有意思的固有印象,很多人都以为安卓不如iOS流畅,特别是在机型的表现之上.一款新安卓手机用久了肯定会出现卡的问题,一般的iPhone机型是不会出现这样的问题的,所以我们 ...
- iOS 12测评:一改iOS 11华而不实 流畅度大幅提升限制屏幕时间防沉迷
iOS 12于今年6月在WWDC上宣布后,已经为开发人员和普通大众经过数月的测试后正式推出.苹果的iOS更新,它将适配各种iPhone和iPad设备,从今年最新的iPhone XS一直追溯到2013年 ...
- 软件测试之——性能测试
性能测试的定义 性能测试的定义:通过自动化测试工具或者代码手段,来模拟正常.峰值负载访问被测系统,来观测系统各项性能指标是否合格的过程. 性能测试的分类 基于代码的性能测试(关注点是函数或方法执行的效 ...
- 软件测试之——性能测试(超级详细)这些你都知道吗?
目录:导读 前言 一.基本概念 二.负载测试 三.压力测试 四.基准测试 五.配单测试 六.容量测试 七.稳定性测试 八.扩展性测试 九.负载测试VS压力测试 十.业务场景 十一.总结 前言 刚开始, ...
- 软件测试之性能测试流程
与功能测试相比,性能测试在技术层面具有更大的复杂性.在以往的测试流程中,性能测试只是测试流程的一部分,是系统或验收测试的一个可选项.但随着测试技术的发展.许多公司也单独把性能测试独立出来,建立专门的性 ...
- 软件测试之——性能测试,Web性能测试用例(详全)
目录:导读 前言 一.预期指标的性能测试 二.独立业务性能测试 三.组合业务性能测试 四.疲劳强度性能测试 五.大数据量性能测试 六.网络性能测试 七.服务器性能测试 八.总结 前言 性能测试 简而言 ...
最新文章
- 【刷算法】判断链表是否有环以及返回入环节点
- SQL Server2008(一)简介
- 微软如何在3年内将数据中心的用水量削减95%
- AV1为何有信心打败H.265?
- redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本
- 獲取mysql字段的注释或描述
- 1.android体系结构介绍
- H计算机语言吗,计算机考研面试------编程语言
- 全栈性能测试修炼宝典jmeter实战电子版_推荐一款技术人必备的接口测试神器:Apifox...
- 使用JsonCpp实现JSON文件读写操作的方法
- SpringMVC系列(四)使用 POJO 对象绑定请求参数值
- 微分方程数值计算matlab实现,微分方程数值解及Matlab实现
- Swift开发:使用SwiftyJSON解析JSON数据
- 盛金公式解一元三次方程_一元三次方程的解法
- CleanMyMac X4.12.2免费版MAC电脑系统磁盘优化工具
- CONTRASTIVE REPRESENTATION DISTILLATION
- 肖特基二极管焊接注意事项和判断正负极的方法
- html班级管理,谈小学班级管理
- SAP那些事-理论篇-1- SAP初次亲密接触
- mybatis拦截器添加额外参数