我们现在在项目中有一个类,它在应用程序启动时启动的唯一方法中有1000行bindPresenter(...)
。我担心性能:这样的注入会减慢应用程序的速度吗?我说得对吗,这不是懒惰注入,所有呈现者都在应用程序开始时使用所有依赖项进行创建?
我们使用了profiler,看起来注入确实减慢了启动速度,但我们不确定。
我怀疑您的1000条bind
语句是否会减慢应用程序的加载时间。来自GWTP的Presenter
文档:
每个演示者都与一个代理相关联,该代理负责收听这位演讲者感兴趣的各种事件。这使得延迟实例化成为可能演示者,并使用GWT代码拆分。
由于Presenter
是惰性实例化的,所以启动缓慢可能是由其他原因造成的。
有一件事可能会减慢你的加载时间,那就是如果你进行大量的PresenterWidget
注入,而不使用Gin的Provider
s:
@Inject
ParentPresenter(
SomePresenterWidget a,
SomePresenterWidget b) {
// ...
}
像这样注入许多PresenterWidget
需要提前构建PresenterWidget
,这可能会导致加载速度减慢。您可以使用Provider
s延迟加载PresenterWidget
s:
@Inject
ParentPresenter(
Provider<SomePresenterWidget> a,
Provider<SomePresenterWidget> b) {
// ...
}
并且仅在需要时使用CCD_ 12来实例化CCD_。