美文网首页
APP卡顿优化学习总结

APP卡顿优化学习总结

作者: Sweet丶 | 来源:发表于2020-06-07 15:41 被阅读0次

好的用户体验需要我们把细节做到位,画面掉帧会导致卡顿感,造成不好的印象。

一、屏幕画面显示的原理

1.屏幕内容的显示是由一帧一帧的画面组成的,一秒是要显示60帧的画面的。
iOS 屏幕成像是当显示器发出垂直同步信号(VSync)时,系统就会从帧缓存中取出一帧交给视频控制器,根据水平同步信号(HSync)一行一行显示到屏幕中


显示器的同步信号.png
  1. 一帧的画面又是按照什么方式绘制的呢?
    一帧画面的绘制.png
    CPU计算后交给GPU渲染,渲染完成后放在帧缓存中, 系统将帧缓存读取到视屏控制器然后显示到屏幕.

CPU具体负责的事情有:
对象的创建与销毁、布局计算和排版、图片的格式转换和解码、图像的绘制
GPU负责的事情:纹理的渲染

二、会造成卡顿的原因分析

由上可知,在一个垂直同步信号来临之前,CPU需要计算完并交给GPU渲染完成放到帧缓存中,否则在垂直同步信号到来时,从帧缓存读取到的将是上一帧的内容,这种情况即“掉帧”, 掉帧越多卡顿越明显.

三、卡顿优化思路

尽量减少CPU、GPU的耗时。
针对CPU具体有:

  1. 避免频繁修改UIView的相关属性如:frame、bounds、transform。
  2. 尽量提前计算好布局并保存,在需要调整时直接赋值。
  3. AutoLayout比设置frame更加消耗CPU。
  4. 图片的size跟imageview的size保持一致。
  5. 把耗时的操作放到子线程。如:文本处理(尺寸计算、绘制)、图片处理(解码(先将图片绘制到上下文中生成后再返回一张UIImage,不这样做的话默认是在主线程完成解码)、绘制)。

针对GPU的具体有:

  1. 减少视图数量和层次。
  2. 大量图片的显示尽量将多个小图合并成一张大图来显示。
  3. 不要超过GPU能处理的最大纹理尺寸4096x4096,不然会占用到CPU资源.
  4. 减少透明的视图。
  5. 尽量避免离屏渲染。

离屏渲染
离屏渲染指的是在当前屏幕缓冲区以外新建一个缓冲区来进行渲染,在当前屏幕缓冲区不够用的时候就会产生离屏渲染.

离屏渲染会消耗性能是因为:需要生成新缓冲区,在离屏渲染的过程需要多次切换上下文环境。

会产生离屏渲染的操作: 会触发离屏渲染的操作.png

绘制像素到屏幕上

相关文章

  • Android开发页面帧率优化有感

    Android APP 优化工具分析Android App优化之消除卡顿Android性能优化:卡顿优化Andro...

  • APP卡顿优化学习总结

    好的用户体验需要我们把细节做到位,画面掉帧会导致卡顿感,造成不好的印象。 一、屏幕画面显示的原理 1.屏幕内容的显...

  • iOS底层原理--性能优化

    文章目录CPU和GPU 卡顿优化 - CPU 卡顿优化 - GPU 离屏渲染 耗电耗电优化 APP的启动 APP启...

  • iOS底层原理之性能优化

    文章目录CPU和GPU 卡顿优化 - CPU 卡顿优化 - GPU 离屏渲染 耗电耗电优化 APP的启动 APP启...

  • 无标题文章

    APP性能优化 UI卡顿优化 View的绘制原理 UI卡顿原理分析 UI卡顿检测分析 BlockCanary原理分...

  • iOS-面试题5-性能优化

    目录: 卡顿优化 耗电优化 启动优化 APP瘦身 一. 卡顿优化 CPU和GPU的作用CPU计算文字大小、位置、颜...

  • iOS底层原理之性能优化

    文章目录 CPU和GPU 卡顿优化 - CPU 卡顿优化 - GPU 离屏渲染 耗电 耗电优化 APP的启动 AP...

  • Android性能优化

    1.App启动优化2.App布局优化3.App内存优化4.App卡顿优化5.App线程优化6.App网络优化7.A...

  • IOS的性能优化包括哪几点

    iOS性能优化总结 iOS性能优化总结。关于 iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • APP优化--卡顿优化

    转自:如何监测Android应用卡顿?这篇就够了[https://zhuanlan.zhihu.com/p/900...

网友评论

      本文标题:APP卡顿优化学习总结

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