Pour déterminer le temps passé à exécuter GetTypes() après le chargement d'une DLL, vous pouvez suivre les étapes mentionnées ci-dessous.
Le garbage collector (GC) est responsable de la récupération de la mémoire inutilisée. Bien que la définition de l'objet Assembly sur null déclenche le GC pour marquer l'objet pour une collection potentielle, il n'est pas garanti que la mémoire sera libérée immédiatement.
Le code suivant montre comment charger un assembly dans un AppDomain séparé et le décharger après avoir mesuré le temps de GetTypes() :
// Define the assembly path string pathToAssembly = @"C:\temp\myassembly.dll"; // Create a new AppDomain AppDomain dom = AppDomain.CreateDomain("some"); // Load the assembly in the new AppDomain AssemblyName assemblyName = new AssemblyName(); assemblyName.CodeBase = pathToAssembly; Assembly assembly = dom.Load(assemblyName); // Measure the time for GetTypes() Stopwatch sw = Stopwatch.StartNew(); Type[] types = assembly.GetTypes(); sw.Stop(); double time1 = sw.Elapsed.TotalMilliseconds; // Unload the AppDomain to release the assembly AppDomain.Unload(dom);
En déchargeant le AppDomain, vous vous assurez que les ressources allouées à l'assembly chargé sont libérées, fournissant une mesure du temps plus précise pour les opérations de chargement et GetTypes() ultérieures.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!