6

ResourceManager使用.Designer.csnew ResourceManger(myResourceType.FullName, myResourceType.Assembly)生成的类MyResourceType.ResourceManager

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

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

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

This method will shrink the working set in a running application. Any future resource lookups on this ResourceManager will be as extensive as the first lookup, since it will need to search and load resources again.

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

4

2 回答 2

4

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

于 2012-08-11T02:46:45.670 回答
0

创建对象时,您将分配一个对象。

这意味着您将一遍又一遍地创建对象会对性能和内存产生影响。

您可以尝试并检查您有多少垃圾收集周期(使用性能计数器)与创建一次(每个进程)的“缓存”资源管理器实例的数量,因此没有不必要的分配

于 2012-06-22T16:34:59.307 回答