ios基础iOS开发系列OC底层

iOS性能优化

2020-04-07  本文已影响0人  lp_lp

好的app应该有好的性能流畅度,本篇文章就大概讲一下iOS性能优化。

先来谈谈CPU和GPU

屏幕成像原理

image

卡顿产生的原因

image

在Sync信号到来后,系统图形服务会通过CADisplayLink等机制通知App,App主线程开始在CPU中计算显示内容,比如视图的创建,布局计算,图片解码,文本绘制等。随后CPU会将计算好的内容提交到GPU去,由GPU进行交换,合成,渲染。随后GPU会把渲染结果提交到帧缓冲区,等待下一次VSync信号(垂直同步信号)到来时显示到屏幕上。由于垂直同步机制,如果在一个VSync时间内,CPU或者GPU没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示屏因为没有新的刷新,会保留之前的内容不变。这就造成了卡顿。

卡顿优化 -CPU

卡顿优化 -GPU

离屏渲染

耗电优化

耗电的主要来源?

image

1. 定位优化

APP启动优化

先来看app启动流程

APP的启动可以分为2种

1、冷启动(Cold Launch):从零开始启动APP
2、热启动(Warm Launch):APP已经在内存中,在后台存活着,再次点击图标启动APP

APP启动时间的优化,主要是针对冷启动进行优化

APP的冷启动概括为三大阶段

image

优化方案

一、dyld

二、runtime

用+initialize方法和dispatch_once取代所有的attribute((constructor))、C++静态构造器、ObjC的+load

三、main

推荐阅读:备战2020——iOS全新面试题总结

作者:有度YouDo
链接:https://www.jianshu.com/p/aace73e49392

上一篇下一篇

猜你喜欢

热点阅读