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

XCode老罢工

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

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

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

77611677480135_.pic.jpg

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

寻找原因

查看编译日志

image.png

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

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

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

解决

消除警告,重新编译,发现项目跑起来非常的舒畅!

如果是有其他第三方库或者组件的警告,可以在podFile中增加 :inhibit_warnings => true 来避免编译的时候检查警告。这种方式也会加快编译速度。

pod 'XXNetEngineModule', :inhibit_warnings => true

可以看到解决完XCode的内存大小基本就在1GB左右。编译速度也基本上能达到秒启(10s内)。

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYv3dQo6' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片