iOS 基于PGO优化启动时间

知识小集

共 1035字,需浏览 3分钟

 ·

2021-04-21 23:31

作者 | 我是来学习的别拉我干 
来源 | 掘金,点击阅读原文查看作者更多文章

前言

本文不再详细阐述iOS启动流程,以及二进制重排的详细原理。只介绍一种相当简单有效的优化启动时间的方法。这就是 Profile Guided Optimization,可以大幅度降低page In 次数。

附苹果文档(非常古老的一个文档)

https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/xcode_profile_guided_optimization/pgo-tasks/pgo-tasks.html#//apple_ref/doc/uid/TP40014459-CH2-SW4

二进制重排 ,Page In 相关概念可以参考一下抖音二进制重排方案 附链接 

https://mp.weixin.qq.com/s/Drmmx5JtjG3UtTFksL6Q8Q

PGO配置

PGO是苹果官方提供的工具,具体使用方法是点击xcode工具栏 Product -> Perform Action -> Generate Optimization Profile 按xcode提示操作即可 

点击Run后待项目启动完成后,点击xcode的停止按钮,项目中会自动添加一个OptimizationProfiles文件夹。在build setting中搜索 Use optimization Profile,将release配置为yes,需要注意的是,苹果文档中说明,PGO只支持release环境。

查看项目Page In次数

配置PGO完成后可以用instruments查看项目pageIn次数。效果相当可观。具体操作步骤 点击xcode工具栏Open Developer Tool  -> instruments  ->  System trace

点击红色按钮等待项目完全启动完毕,再点击暂停按钮,得到分析数据,搜索main Thread,如图

每次启动得到的Page In次数并不会完全相同,这取决于app占用的物理内存是否已经被覆盖。杀死app之后,app的物理内存有可能还在。

浏览 94
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报