| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> iOS启动优化之——如何使用Xcode Log、App Launch、代码来计算启动时间 Launch Time -> 正文阅读 |
|
[移动开发]iOS启动优化之——如何使用Xcode Log、App Launch、代码来计算启动时间 Launch Time |
在iOS启动优化之——如何使用MetricKit 来计算启动时间 Launch Time 配置环境变量打印Xcode曾经提供了一些环境变量比如DYLD_PRINT_STATISTICS来提供时间统计(参考Xcode 动态库环境变量——不止DYLD_PRINT_STATISTICS),我们在Scheme的Run 环境变量中添加该参数,启动之后,Xcode会在log中打印如下内容:
但是在iOS15之后,iOS 15 and macOS Monterey have a new version of dyld 参考: DYLD_PRINT_STATISTICS not working / Xcode 13.0 beta / iOS 15.0 beta 8 我们就需要使用App launch工具来计算 Instrument App Launch首先,我们打开AppLaunch工具, Xcode -> Open Development Tools -> Instrument,App Launch可以检查安装在手机上的Debug或者Release 版本的App,我们选择好对应的项目 如果是Debug的App,最好是选择Debug下也支持DWARF with DSYM File,这样一旦有比较耗时的函数,我们也可以通过Time Profile发现,我后面也会展示如何定位 选择好使用的App,我们打开App Launch的开始键,App会被启动,待启动过后我们在点击下停止,则App Launch 就会开始分析 结果过下,可以看到紫色、绿色、蓝色的色块,分别对应了不同的阶段
我们继续查看下面更详细的统计信息,先看下表格内容,截图如下:
可以看到,这里的每部分内容都对应着火焰图中的不同色块,本次初始化耗时150ms 那么,我们增加一个耗时操作,然后尝试找到它,这里用一个经典案例,就是初学者经常用同步的方法来加载远程图片
将这行代码放到didfinishLaunch中执行,看下测试结果 AppLaunch 的使用细节可以参考 使用Instruments了解iOS应用启动时长(Xcode13) 代码打印如果要使用代码计算,我们这里使用sysctl 函数获取线程的初始化时间,然后计算当前时间差获取启动时间 这里引用抖音的文章内容来说明计算具体时机,我也会在后面的文章中解释时机问题
代码实现如下:
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 3:53:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |