iOS启动时间慢

时间:2017-07-29 10:55:08

标签: ios swift swift3 dyld app-startup

我在Swift中有项目,当我使用DYLD_PRINT_STATISTICS进行测量时,我可以看到1.0秒的预启动时间,其中70%是动态库链接。

有没有干净安全的方法来处理这个问题?

1 个答案:

答案 0 :(得分:1)

根据Apple的2016年WWDC会议Optimizing App Startup Time,无论大小如何,dynamically linked libraries都会大幅减缓应用启动时间。

要解决此问题,可以将多个动态库合并到一个库中。如果它们已经static libraries,那么可以使用libtool来组合它们,使用this SO answer中的命令。但是,如果它们不是静态的,那么要组合它们,必须能够访问它们的源代码。如果可以访问源代码,那么将代码从一个库复制到另一个库中,并使用生成的库就足够了。

当然,从开发人员的角度来看,将不同的库合并为一个库肯定是不方便的。为了解决这个问题,Xcode允许在设置不同的标志(即RELEASE和DEBUG)时链接不同的库,as described in this forum

如果可能,合并静态库会更好,因为合并过程远不易出错。 CocoaPods allows users to use static libraries在他们的项目中。