iOS性能优化iOS开发攻城狮的集散地iOS面试知识点

iOS-底层原理(29)-性能优化详细讲解

2018-09-28  本文已影响117人  路飞_Luck
一 CPU和GPU

下图展示视图如何显示

image.png

在iOS中是双缓冲机制,有前帧缓存、后帧缓存

二 屏幕成像原理
image.png
三 卡顿原因,解决,监测

卡顿产生的原因:因为CPU或者GPU所花费的时间过长,导致垂直信号来的时候,CPU计算或者GPU渲染未完成,从而掉帧。

掉帧.png

(1) 尽可能减少CPU、GPU资源消耗
(2) 按照60FPS的刷帧率,每隔16ms就会有一次VSync信号

我们从CPU和GPU两方面入手进行卡顿优化

3.1 卡顿优化 - CPU
3.2 卡顿优化 - GPU
3.3 离屏渲染
  1. 在OpenGL中,GPU有2种渲染方式
  1. 离屏渲染消耗性能的原因
  1. 哪些操作会触发离屏渲染?
  1. 卡顿检测

项目连接地址 - LXDAppFluecyMonitor-master

四 耗电的主要来源
4.1 耗电优化
  1. 尽可能降低CPU、GPU功耗

  2. 少用定时器

  3. 优化I/O操作

  1. 网络优化
  1. 定位优化
  1. 硬件检测优化
五 APP的启动
  1. APP的启动可以分为2种
  1. APP启动时间的优化,主要是针对冷启动进行优化

  2. 通过添加环境变量可以打印出APP的启动时间分析

image.png

运行结果

image.png
5.1 APP的启动

APP的冷启动可以概括为3大阶段

image.png
5.2 APP的启动 - dyld
5.3 APP的启动 - runtime
  1. 启动APP时,runtime所做的事情有
  1. 到此为止,可执行文件和动态库中所有的符号(Class,Protocol,Selector,IMP,…)都已经按格式成功加载到内存中,被runtime 所管理
5.4 APP的启动 - main

总结一下

5.5 APP的启动优化

按照不同的阶段

  1. dyld
  1. runtime
  1. main
六 安装包瘦身
  1. 安装包(IPA)主要由可执行文件、资源组成

  2. 资源(图片、音频、视频等)

  1. 可执行文件瘦身
七 LinkMap
image.png

本文参考MJ底层原理教程,非常感谢



项目连接地址 - PropertyOptimize_Fluecy
项目连接地址 - LXDAppFluecyMonitor-master

上一篇 下一篇

猜你喜欢

热点阅读