美文网首页iOS APP性能检测
性能检测 CPU 内存 屏幕刷帧率FPS

性能检测 CPU 内存 屏幕刷帧率FPS

作者: leesen | 来源:发表于2019-06-12 18:09 被阅读0次

机型: iPhone8P iOS12.2

OC Swift混编嵌套第三方, App内部直观 查看  CPU  内存  刷新帧率FPS

在Instrument中,Command+L打开Library,然后添加Core Animation。我们来看看GPU的相关的问题

最直观的就是滚动视图,查看FPS(Frame per second),一般小于50帧就会看到明显的掉帧, 

45帧一下就属于明显异常

iOS设备通常是60fps(每秒60帧),也就是说两帧相隔的时间是1/60秒,大概16.7ms。在这16.7ms中,为了显示一帧,需要如下工作

CPU计算好各个视图的位置,大小,对图片进行解码等,绘制成纹理交给GPU

GPU对收到的纹理进行混合,顶点变换,渲染到帧缓冲区

每16.7ms,一个时钟信号到达,帧缓冲区取出一帧,显示到屏幕。

也就是说,CPU或者GPU被大量占用的时候,都有可能在16.7ms中没办法完成一帧的绘制,导致时钟信号到来的时候,取得还是上一帧的内容,也就都有可能导致界面卡顿

离屏渲染

在iOS中,渲染通常分为CPU和GPU渲染两种,而GPU渲染又分为在GPU缓冲区和非GPU缓冲区两种

CPU渲染(软件渲染),CPU绘制成bitmap,交给GPU

GPU渲染(硬件渲染)

GPU缓冲区渲染

非GPU缓冲区渲染(额外开辟缓冲区)

通常,CPU渲染,和GPU非帧缓冲区内渲染统称为离屏渲染。因为,CPU和帧缓冲区是为图形图像显示做了高度优化的,速度较快。

什么情况下会触发离屏幕渲染?

用CoreGraphics的CGContext绘制的

在drawRect中绘制的,即使drawRect是空的

Layer具有Mask(比如圆角)或者Shadow

Layer的隔栅化shouldRasterize为True

文本(UILabel,UITextfield,UITextView,CoreText,UITextLayer等)

离屏渲染一定会引起性能问题吗?

很少会,比如drawRect这个方法,只会在时图进行重新绘制的时候才会调用。也就是说,假如你的View并不会频繁重绘,那么即使实现了drawRect,也没什么关系。

对了,目前iOS设备的硬件越来越好也是一个原因,想要要性能差也挺难的。

CoreGraphics VS CALayer

CoreGraphics通常是CPU渲染成bitmap交给GPU,假如频繁的大量的绘制出现,往往会导致界面卡顿。而CALayer是对GPU做过优化的,能够硬件加速。所以,对于性能要求较高的绘制,尝试用CALayer替代CoreGraphics

相关文章

  • 性能检测 CPU 内存 屏幕刷帧率FPS

    机型: iPhone8P iOS12.2 OC Swift混编嵌套第三方, App内部直观 查看CPU 内存 刷新...

  • 性能优化

    1.CPU和GPU 我们知道屏幕成像是有CPU和GPU来处理的,屏幕成像是有帧来成像的按照60fps的刷帧率,每个...

  • 性能优化

    性能优化 卡顿原因的产生:按照60FPS的刷帧率,每隔16ms就会有一次VSync信号,当信号到达时CPU与GPU...

  • Web动画性能介绍

    在谈动画性能之前,先介绍一些概念。 帧率(FPS) 帧率(FPS):描述每秒播放的帧数,单位为 Hz 或者 fra...

  • iOS性能(一) UI优化

    帧率-FPS UI的性能主要的体现就是帧率(Frames Per Second),当快速滚动页面时能够保持较高帧率...

  • 性能优化

    UI卡顿优化 : 1.基于CPU和GPU两方面来回答,尽可能减少CPU、GPU资源消耗 2.按照60FPS的刷帧率...

  • 安卓性能测试

    安卓性能测试从以下七个方面出发: 启动时间、CPU、流量、电量、内存、FPS、过度渲染

  • Android性能指标与监控

    Android性能指标大致分为以下几点FPS、CPU使用率、内存占用、页面加载时间、网络请求 内存使用 在加载图片...

  • 性能监控、耗电优化

    线上性能监控,主要集中在 CPU 使用率、帧率和内存这三个方面。 CPU使用率 App 作为进程运行起来后会有多个...

  • Android性能测试与优化

    本文目录:一、性能测试1.内存消耗 2.CPU占用 3.帧率GPU 4.流量消耗 5.电量消耗二、...

网友评论

    本文标题:性能检测 CPU 内存 屏幕刷帧率FPS

    本文链接:https://www.haomeiwen.com/subject/fycrfctx.html