XCode老罢工

从本年开始,项目中一个组件的主工程在开发过程中,运行编译时刻耗时长,XCode是不是都会转菊花,平均每次编译的时刻大概在5min左右,十分影响开发功率,今日刚好提测完,抽暇细心看看为何如此卡顿。

key value
Mac OS 13.2.1 (22D68)
内存 16 GB
芯片 Apple M1
存储 512G
XCode 14.0.1
组件代码 19MB

在卡顿的时分打开活动监视器,发现XCode占用内存十分高,平均在20GB左右,峰值达到60GB

iOS项目运行时XCode内存暴涨、速度慢、卡的解决过程

在Command + k 删除DerivedData 里边的缓存之后,还是没有明显的加速成果。

寻觅原因

查看编译日志

iOS项目运行时XCode内存暴涨、速度慢、卡的解决过程

发现组件内的所有文件在编译的时分都会有几个相似的正告。

这些正告来自同一个文件,通过pch文件引证。

有正告的文件是该组件的网络请求文件,是很早以前建立的,文件里边没有自动生成NS_ASSUME_NONNULL_BEGIN文件内大概有几百个正告。在编译文件的时分,这些正告都会去做缓存、剖析。导致运行起来十分卡顿。

处理

消除正告,从头编译,发现项目跑起来十分的酣畅!

如果是有其他第三方库或许组件的正告,能够在podFile中添加 :inhibit_warnings => true 来防止编译的时分查看正告。这种方式也会加速编译速度。

pod 'XXNetEngineModule', :inhibit_warnings => true

能够看到处理完XCode的内存大小根本就在1GB左右。编译速度也根本上能达到秒启(10s内)。

iOS项目运行时XCode内存暴涨、速度慢、卡的解决过程