我们现在在我们的项目中有一个类,它在应用程序启动时启动的唯一方法中有1000行bindPresenter(...)
。我担心性能:这样的注射可以减缓应用吗?我是对的,它不是懒惰注入,并且所有呈现者在应用程序开始时都创建了所有依赖项?
我们使用了探查器,看起来注射开始真的很慢,但我们不确定。
谢谢!
答案 0 :(得分:3)
我怀疑你的1000 bind
语句会减慢你的应用程序的加载时间。来自GWTP's Presenter
docs:
每个演示者都与一个负责收听的代理相关联 此演示者感兴趣的各种活动。这使得懒惰实例化成为可能 演示者并使用GWT代码分割。
由于Presenter
是懒惰实例化的,你的慢启动可能是由其他东西造成的。
可能会减慢加载时间的一件事是,如果你进行大量的PresenterWidget
注射,而不使用Gin的Provider
s:
@Inject
ParentPresenter(
SomePresenterWidget a,
SomePresenterWidget b) {
// ...
}
像这样注入许多PresenterWidget
需要预先构建PresenterWidget
,这可能会导致加载速度减慢。您可以使用Provider
来延迟加载PresenterWidget
s:
@Inject
ParentPresenter(
Provider<SomePresenterWidget> a,
Provider<SomePresenterWidget> b) {
// ...
}
并且仅在需要时使用PresenterWidget
实例化provider.get()
。