There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
Improve GlobalAssemblyCache performances
Calls to GlobalAssemblyCache are very slow due to enumeration of all assemblies throw fusion at each call.
CreateAssemblyEnum should be called with an IAssemblyName to filter results. Filtering on assembly name reduce the assemblies to be tested, and drasticly reduce marshalling overhead.
IAssemblyName should be created with CreateAssemblyNameObject.
(Implementation proposal attached as GlobalAssemblyCache2.cs)
(Previous proposal was not correct, and lead to some COM exceptions)
New implementation reduce GAC search from 2000 msec to 1 msec after fusion.dll loading.