实际上,我的 4 个 Typhoon 组件中有大约 150 个组件。我在我的应用启动时使用这些程序集进行初始化TyphoonComponentFactory
,它可能会很长,具体取决于组件的数量和 tagrget iDevice。
例如,组件工厂初始化在 iPhone4 上大约需要 1200 毫秒,在 iPhone 5S 上大约需要 600 毫秒。
有没有办法加快组件工厂初始化?
实际上,我的 4 个 Typhoon 组件中有大约 150 个组件。我在我的应用启动时使用这些程序集进行初始化TyphoonComponentFactory
,它可能会很长,具体取决于组件的数量和 tagrget iDevice。
例如,组件工厂初始化在 iPhone4 上大约需要 1200 毫秒,在 iPhone 5S 上大约需要 600 毫秒。
有没有办法加快组件工厂初始化?
实例化 Typhoon 的“Assembly”风格设计用于以下用途:
自分析以来已经有一段时间了,但我猜想性能损失最大的两个功能是:
自动接线:
有一个新的自动接线功能将作为 Typhoon 3.0 的一部分发布。虽然它仍然是私有的,但它位于主分支上,并且存在于某些 Typhoon 2.3.x 版本中。它增加了 25% 的开销。昨天推出了一项功能,允许关闭自动接线。
收藏扫描:
Typhoon 对集合(NSArrays、Sets 等)具有以下行为:
这允许一个简单而直观的 DSL,但需要扫描每个集合值,这会增加开销。你的程序集中有很多集合吗?
台风 3.0:
作为Typhoon 3.0 版本的一部分,我们将进行一些分析。同时,如果您有任何表现,可能会提出 Github 问题,我们将尝试解决它们。
最小台风(一般情况下不推荐):
关于性能的最后一点:除了使用 Typhoon 的组装方式之外,如果启动性能特别受关注,您可以通过TyphoonComponentFactory
直接使用以裸/最小状态使用 Typhoon,但是这更加冗长并且没有内置-in IDE 重构、代码完成、使用汇编接口解析组件的能力(使用我们的没有运行时参数)等。