要確定載入DLL 後執行GetTypes() 所花費的時間,您可以按照下面提到的步驟操作。
垃圾收集器 (GC) 負責回收未使用的記憶體。雖然將 Assembly 物件設為 null 會觸發 GC 將該物件標記為潛在的回收,但不能保證記憶體會立即釋放。
以下程式碼示範如何在單獨的AppDomain 中載入程式集,並在測量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);
透過卸載AppDomain,確保分配給載入的組件的資源被釋放,為後續載入和GetTypes()操作提供更準確的時間測量。
以上是如何有效率地卸載用Assembly.LoadFrom()載入的組件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!