gpt4 book ai didi

c# - 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是新实例?有关系吗?

转载 作者:太空狗 更新时间:2023-10-29 21:46:02 25 4
gpt4 key购买 nike

使用 new ResourceManger(myResourceType.FullName, myResourceType.Assembly) 创建新的 .NET ResourceManager 对性能(或其他)有什么影响? > 对比在 .Designer.cs 生成的类 (MyResourceType.ResourceManager) 中使用“缓存的 ResourceManager 实例”?

我在使用 .resx 文件的 ASP.NET MVC 3 应用程序的上下文中工作。

编辑:我感兴趣的是超出为新对象分配内存的成本的影响。

编辑:查看 ResourceManager.ReleaseAllResources 的 MSDN 文档,它指出:


此方法将缩小正在运行的应用程序中的工作集。此 ResourceManager 上的任何 future 资源查找都将与第一次查找一样广泛,因为它将需要再次搜索和加载资源。

这似乎暗示资源集的初始打开是昂贵的,这对我来说意味着为每个请求创建一个新的管理器可能是昂贵的。但是,文档并未就资源管理器的生命周期/范围提出最佳实践建议。

最佳答案

我对使用缓存管理器(我使用反射为每种资源类型找到静态缓存管理器)和为每个键访问使用新管理器之间的区别做了一些原始分析(使用 MiniProfiler)。结果表明新管理器花费了大约 45 倍的时间,这对我来说表明使用缓存管理器方法具有真正的性能优势。然而,这两种方法都非常快,以至于在实践中差异可能并不重要。

关于c# - 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是新实例?有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160283/

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