Memunggah Perhimpunan Dimuatkan dengan Perhimpunan.LoadFrom() untuk Ujian Perbandingan
Memuatkan pemasangan secara dinamik menggunakan Assembly.LoadFrom() memerlukan kos masa, dan anda mungkin mahu menguji kali ini atau membandingkannya semasa memuatkan semula pemasangan. Untuk mencapai matlamat ini, anda perlu memunggah pemasangan selepas beban awal, yang menimbulkan persoalan tentang cara memunggah pemasangan dan cara membuang sampah mengumpul sumber yang diperuntukkan.
Memunggah Perhimpunan
Menetapkan assem = null sahaja tidak mencukupi untuk memunggah perhimpunan. Anda boleh menggunakan kelas AssemblyLoadContext untuk mengurus pemasangan dan memunggahnya secara eksplisit:
AssemblyLoadContext loadContext = AssemblyLoadContext.GetLoadContext(assem); loadContext.Unload();
Pengumpulan Sampah
Pengumpul sampah akan menuntut semula memori yang diperuntukkan kepada perhimpunan secara automatik dan jenisnya sebaik sahaja ia dipunggah. Walau bagaimanapun, jika anda ingin mencetuskan kutipan sampah secara eksplisit, anda boleh menggunakan kaedah GC.Collect().
Kaedah Alternatif Menggunakan AppDomains
Pendekatan alternatif untuk memunggah pemasangan ialah menggunakan AppDomains. Setiap AppDomain ialah persekitaran pelaksanaan berasingan yang boleh mengehoskan perhimpunan secara bebas. Anda boleh mencipta AppDomain baharu, memuatkan pemasangan ke dalamnya, mendapatkan semula jenis, dan kemudian memunggah AppDomain untuk melepaskan sumber:
// Create a new AppDomain AppDomain dom = AppDomain.CreateDomain("SomeDomain"); // Load the assembly into the new AppDomain AssemblyName assemblyName = new AssemblyName(); assemblyName.CodeBase = pathToAssembly; Assembly assembly = dom.Load(assemblyName); // Get the types from the assembly Type[] types = assembly.GetTypes(); // Unload the AppDomain AppDomain.Unload(dom);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memunggah Perhimpunan yang Dimuat dengan Perhimpunan dengan Cekap.LoadFrom() untuk Ujian Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!