【发布时间】:2019-07-14 09:15:54
【问题描述】:
在 ASP.NET Core 依赖注入中,我只是想知道注册 Singleton 实例是否会提高性能而不是注册 Transient 实例?
在我看来,对于Singleton 实例,创建新对象和依赖对象只需花费一次时间。对于Transient 实例,将针对每个服务请求重复此成本。所以Singleton 似乎更好。但是当使用Singleton 而不是Transient 时,我们可以获得多少性能呢?
提前谢谢!
【问题讨论】:
-
我认为这不是更好或更坏的情况,是的,是正确的情况,这在谈论依赖注入时很大程度上取决于
-
这不是性能问题。您应该使用您需要的解决方案。
-
我同意@Silvermind 的观点,但是,在不影响可观察行为以减少对象构造和图形开销的情况下,您可能更喜欢使用
Singleton而不是Transient遍历。但是,与所有优化一样,您应该衡量这是否重要。 -
@JoãoPauloAmorim,感谢您的回复。在我的情况下,Singleton 或 Transient 都可以使用,所以我考虑选择更好的性能。单例可能会导致内存泄漏,但我认为它的性能更好。
-
@Silvermind,谢谢。您是否测量了它们的性能或是否有任何链接可以参考?
标签: c# asp.net asp.net-core dependency-injection .net-core