性能优化

iOS-面试题 性能优化(夯实基础学习笔记-温故知新6)

2020-07-03  本文已影响0人  朱允见
  1. 你在项目中是怎么优化内存的?

  2. 优化你是从哪几方面着手?

  3. 列表卡顿的原因可能有哪些?你平时是怎么优化的?

  4. 遇到tableView卡顿嘛?会造成卡顿的原因大致有哪些?

image.png image.png image.png
卡顿优化 - CPU

离屏渲染

在OpenGL中,GPU有2种渲染方式

离屏渲染消耗性能的原因?

哪些操作会触发离屏渲染?

卡顿检测
image.png

耗电量优化

APP的启动

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

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

通过添加环境变量可以打印出APP的启动时间分析(Edit scheme -> Run -> Arguments)
DYLD_PRINT_STATISTICS设置为1
如果需要更详细的信息,那就将DYLD_PRINT_STATISTICS_DETAILS设置为1

image.png image.png image.png image.png image.png
安装包瘦身

安装包(IPA)主要由可执行文件、资源组成

资源(图片、音频、视频等)
采取无损压缩
去除没有用到的资源: https://github.com/tinymind/LSUnusedResources

可执行文件瘦身
编译器优化
Strip Linked Product、Make Strings Read-Only、Symbols Hidden by Default设置为YES
去掉异常支持,Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO, Other C Flags添加-fno-exceptions

利用AppCode(https://www.jetbrains.com/objc/)检测未使用的代码:菜单栏 -> Code -> Inspect Code

编写LLVM插件检测出重复代码、未被调用的代码

image.png
上一篇下一篇

猜你喜欢

热点阅读