how many instances of the CLR? RRS feed

  • Question

  • I'm working on the SANS GSSP .NET and came across a section in their study materials which I'm having trouble understanding. 

    The passage in question says, "For any application that is .NET aware, a seperate copy of the CLR is loaded into the respective process addres space.  If fifteen .NET-aware applications are executing, then fiftenn seperate copies of the CLR are loaded into each individual application respectively."

    I interpret this to mean that if 15 .NET-aware applications are executing, then there are 15 * 15 = 225 seperate copies of the CLR loaded in total across the 15 individual applications.  That doesn't smell right and I need a sanity check.

    Wednesday, March 23, 2011 7:57 PM


  • No - it just means that every application that uses .NET will load the CLR.  If "15 .NET-aware" applications are executing, you'll (generally) get 15 CLR instances.


    That being said, this is slightly out of date.  As of .NET 4, it's possible (though rare) to use side-by-side execution, where v2 of the CLR and v4 of the CLR can both be loaded into a process.  This typically happens when loading .NET-authored COM components into a process - a .NET 3.5 and a .NET 4 COM component will cause both CLR versions to get loaded (by default) into the hosting process.



    Reed Copsey, Jr. -
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    • Marked as answer by Paul Zhou Thursday, March 31, 2011 6:21 AM
    Wednesday, March 23, 2011 8:14 PM