gpt4 book ai didi

ios - 使用大量 bean 更快地初始化 Typhoon 工厂

转载 作者:行者123 更新时间:2023-11-29 12:33:43 26 4
gpt4 key购买 nike

我的 4 个 Typhoon 组件中实际上有大约 150 个组件。我在应用启动时使用这些程序集初始化了 TyphoonComponentFactory,它可能会很长,具体取决于组件的数量和 tagrget iDevice。

例如,组件工厂初始化在 iPhone4 上大约需要 1200 毫秒,在 iPhone 5S 上大约需要 600 毫秒。

有没有办法加快组件工厂的初始化?

最佳答案

实例化 Typhoon 的“Assembly”风格是为以下设计的:

  • 在初始化时造成主要性能下降,并在运行时尽可能快。
  • 尽可能提供便利性和易用性。

自分析以来已经有一段时间了,但我猜想性能损失最大的两个功能是:

Autowiring :

有一个新的自动布线功能将作为 Typhoon 3.0 的一部分发布。虽然它仍然是私有(private)的,但它位于主分支上并且存在于某些 Typhoon 2.3.x 版本中。它增加了 25% 的开销。昨天推出了一项功能,允许关闭自动接线。

集合扫描:

Typhoon 对集合(NSArrays、Sets 等)有以下行为:

  • 对其他组件的任何引用都将导致构建 组件被注入(inject)。
  • 否则普通对象、配置和标量值将按原样注入(inject)。 .虽然此功能可能会影响性能,但在典型的程序集中,集合数量不多,因此不会产生任何明显的影响。

这允许一个简单直观的 DSL,但需要扫描每个集合值,这会增加开销。您的集合中有很多集合吗?

台风 3.0:

作为Typhoon 3.0 版本 的一部分,我们将进行一些分析。同时,如果您有任何表现,或许可以提出 Github 问题,我们将尝试解决这些问题。

最小台风(一般情况下不推荐):

关于性能的最后一点:除了使用 Typhoon 的装配风格外,如果启动性能特别受关注,您可以通过直接使用 TyphoonComponentFactory 在裸/最小状态下使用 Typhoon,但是这更加冗长并且没有内置的 IDE 重构、代码完成、使用程序集接口(interface)解析组件的能力(我们没有运行时参数)等。

关于ios - 使用大量 bean 更快地初始化 Typhoon 工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com