gpt4 book ai didi

c# - Unity 容器内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:33 24 4
gpt4 key购买 nike

您好,我正在开发一个使用 Enterprice Libraries 的 Unity 容器解决问题的项目异常处理、缓存、日志记录和数据库访问的依赖项,但我们不断将大量泄漏的对象存入内存。

我们像这样使用属性注入(inject):

[Dependency]
public Database DB
{
get { return db; }
set { db = value; }
}
[Dependency]
public ExceptionManager ExceptionMgr
{
get { return exceptionManager; }
set { exceptionManager = value; }
}

部分对象泄露:

Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettiMicrosoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionPolicyData
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ReplaceHandlerData
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.WrapHandlerDataMicrosoft.Practices.EnterpriseLibrary.Common.Configuration.GenericEnumeratorWrapperMicrosoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheStorageData

关于使用 Unity 处理依赖项以避免对象泄漏的一般建议?

最佳答案

您列出的所有对象都是配置系统的一部分。你如何初始化你的容器?只是调用“AddNewExtension()”?如果是这样,那不是真正的泄漏,因为这些对象代表您加载的配置。配置源(保存在这些对象上的内容)在应用的整个生命周期内一直存在,以便它可以监视并通知您应用中的更改。

您运行的哪些工具告诉您它们正在泄漏?泄漏是在增加还是持续不断?一些细节将有助于将行为从“预期”缩小到“糟糕的实际错误”。

此外,这更像是一个企业库问题,而不是一个 Unity 问题 - 据我所知,Unity 本身并没有泄漏。

关于c# - Unity 容器内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3877573/

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