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);
By AppDomain을 언로드하면 로드된 어셈블리에 할당된 리소스가 해제되어 후속 로드 및 GetTypes() 작업에 대해 보다 정확한 시간 측정을 제공합니다.
위 내용은 Assembly.LoadFrom()을 사용하여 로드된 어셈블리를 효율적으로 언로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!