¿Cuáles son las implicaciones de rendimiento (u otras) de crear un .NET ResourceManager
nuevo en cada solicitud con new ResourceManger(myResourceType.FullName, myResourceType.Assembly)
frente a utilizar la "instancia de ResourceManager almacenada en caché" en la clase generada .Designer.cs (MyResourceType.ResourceManager
)?¿Debo usar el ResourceManager almacenado en caché estática o una nueva instancia para cada solicitud web? ¿Importa?
Estoy trabajando en el contexto de una aplicación ASP.NET MVC 3 utilizando archivos .resx.
Editar: Estoy interesado en implicaciones más allá del costo de asignación de memoria para el nuevo objeto.
Editar: En cuanto a la documentación de MSDN para ResourceManager.ReleaseAllResources
, se establece que:
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.
Esto parece implicar que la apertura inicial del conjunto de recursos es caro, lo que me hace pensar que la creación de una nueva gerente en cada solicitud podría ser costoso. Sin embargo, los documentos no sugieren una mejor práctica con respecto al tiempo de vida/alcance de los administradores de recursos.
¿Está diciendo que la asignación de objetos es la ÚNICA implicación? Estoy mucho más preocupado con cosas como el almacenamiento en memoria caché de archivos de recursos ... – ChaseMedallion
No lo sé, pero tendrá que consultar con contadores de rendimiento y perfiladores – eyossi