iOS 是否失去了使用动态框架的大部分优势?

Does iOS lost most of the advantage of using dynamic frameworks?

是否iOS失去了使用动态框架的大部分优势?

是不是说如果我们用dlOpen的动态框架以后再加载,会比静态框架快?因为动态框架一开始需要一些时间到link,但它们在加载到内存中节省了更多时间。静态框架的加载时间比动态框架的 linking 时间长。是真的吗?

所以看起来 none 在 iOS 上使用动态框架有优势,对吗?

在 macOS 和 Linux 上怎么样?动态框架有什么优势吗?如果是,它们是如何工作的?

你说的都是对的。在 iOS 上,非系统(即 Apple 不提供)动态库在几乎所有方面的效率都会降低。它们不会为您提供 space 或内存节省,并且会在启动时花费您。

旧的Apple document you reference几乎全部写在iPhone之前。它指的是 Mac 应用程序中的延迟加载库,这有助于缩短启动时间。

在具有 共享 库的系统上(或使用在 iOS 上共享的系统库时),动态库保存磁盘 space,并且可以在节省内存和加载时间的进程之间共享(因为它已经被其他进程加载)。但是,如果您不共享图书馆,您将无法真正获得任何这些好处。在允许运行时加载库的系统上(不是 iOS),动态库可以延迟加载很少使用的代码的成本,可能无限期地(如果代码从未使用过)。此外,它为插件和其他扩展打开了机会。