Posted 12 May 2008
Link to this post
I actually was pondering the exact same question a few weeks ago. Basically, it boils down to the concept of strongly named assemblies. The way I understand it, the goal of strong naming is to allow the server to automatically recognize assemblies that are already in memory so that they don't need to be re-loaded. Now, I'm not an expert on that but after monitoring memory usage on our servers that does appear to be the case. What I'm not certain of is whether or not the assembly is shared across several processes or not - I try to keep all the like-minded applications in the same application pool.
Now, there is another impact that I stumbled upon that affected my scenario but is unlikely to affect others, but is perhaps useful information anyway. If the applications aren't pre-compiled and all the other default settings are being used, ASP.NET will keep a compiled version of the application as well as a copy of all the dll's in the bin directory in the "Temporary ASP.NET Files" folder. It will do this once for every application. So, since the Telerik.Web.UI dll is now about 12 MB (and growing), if you had 10 sites the disk space used starts to grow quite quickly. Using the GAC prevents this from happening (as does pre-compiling). The only reason I found this out is because I have a relatively small partition on the hard drive that was getting filled as the number of applications increased.