Posts

Showing posts with the label CLR

Lessons Learned: .NET Framework Assembly Loading, Memory Optimization

Image
Several of my colleagues and I recently began looking into how assemblies were loaded in the .NET CLR for a web application that we're working on. The application runs several instances within each of several application pools that all used the same set of large assemblies. What we found was, that since we'd paid little attention to how assemblies were loaded to that point, we had assemblies being loaded multiple times contributing to a huge memory footprint for the application. To fully understand the problem and the partial solution we found, I'll review how an application in IIS and the .NET CLR is logically structured. Logical Runtime Structure of IIS Hosted Websites Global Assembly Cache (GAC) The GAC is a cache of Common Language Infrastructure assemblies...