C# 统一配置注册和性能影响

C# 统一配置注册和性能影响,c#,.net,clr,unity-container,dllregistration,C#,.net,Clr,Unity Container,Dllregistration,我使用Unity框架在我的应用程序中创建和管理实例,我对性能有疑问。配置中的注册语句过多会影响应用程序的启动时间吗?我通过配置文件注册了将近89种类型 另外需要注意的是,大多数注册的类型仅在启动后根据一些用户操作进行实例化 关于 配置中的注册语句过多是否会影响我的 应用程序的启动时间 简而言之,答案是“不太可能” 我不认为“谨慎地”使用Unity容器会对应用程序的性能产生负面影响。我之所以说“小心”是因为在较大规模的应用程序中,有许多实例需要以不同的分辨率注册和解决。例如,您可能不希望容器在您希

我使用Unity框架在我的应用程序中创建和管理实例,我对性能有疑问。配置中的注册语句过多会影响应用程序的启动时间吗?我通过配置文件注册了将近89种类型

另外需要注意的是,大多数注册的类型仅在启动后根据一些用户操作进行实例化

关于

配置中的注册语句过多是否会影响我的 应用程序的启动时间

简而言之,答案是“不太可能”

我不认为“谨慎地”使用Unity容器会对应用程序的性能产生负面影响。我之所以说“小心”是因为在较大规模的应用程序中,有许多实例需要以不同的分辨率注册和解决。例如,您可能不希望容器在您希望动态注册的位置承载注册负载,或者您不希望容器在您希望的位置承载注册负载

大量注册会将这些条目保存在内存中(如字典),并且不会对容器的性能产生太大影响。它只是一个查找表,因此Unity builder strategies将根据注册来解析这些实例。问题是,如果您解决了很多实例,并预先将其保留在内存中,您提到您已经避免了这一点(请参阅我的最后一段…)

人们错误地认为Unity比DI容器慢。它具有丰富的功能集,可以很好地放置在其他一些更好的容器中。是的

关于“作为补充说明,大多数注册的类型仅在启动后根据一些用户操作进行实例化。”
我相信这实际上是件好事,因为您只在他们需要时创建实例。从内存消耗的角度来看,这是有益的——你不会在内存中携带大量的实例。

如果你担心通过使用配置文件的性能,你可以考虑使用基于代码的注册。