


Bagaimanakah Saya Boleh Memunggah dengan Cekap Perhimpunan yang Dimuat dengan Assembly.LoadFrom()?
Memunggah Perhimpunan Dimuatkan dengan Perhimpunan.LoadFrom()
Untuk menguji masa yang diambil oleh GetTypes() selepas memuatkan DLL, mari kita terokai proses memunggah dan memuat semula DLL.
Memunggah Perhimpunan
Apabila perhimpunan dimuatkan menggunakan Assembly.LoadFrom(), ia ditambahkan pada senarai perhimpunan AppDomain. Untuk memunggahnya, tiada kaedah eksplisit dalam Assembly atau AppDomain untuk memunggah. Walau bagaimanapun, anda boleh mencipta AppDomain baharu untuk memuatkan pemasangan dan kemudian memunggah AppDomain untuk melepaskan sumber.
Muat Semula dan Perbandingan Masa
Untuk memuat semula DLL, ikut langkah berikut:
- Buat AppDomain baharu dengan nama yang berbeza.
- Muatkan pemasangan ke dalam yang baharu AppDomain menggunakan AppDomain.Load().
- Dapatkan masa yang diambil oleh GetTypes() untuk pemasangan yang dimuat semula.
- Nyahmuat AppDomain untuk mengeluarkan sumber.
Contoh :
string file = "path/to/assembly.dll"; // First AppDomain AppDomain dom1 = AppDomain.CreateDomain("domain1"); Assembly assem1 = dom1.Load(file); Stopwatch sw1 = Stopwatch.StartNew(); var types1 = assem1.GetTypes(); sw1.Stop(); double time1 = sw1.Elapsed.TotalMilliseconds; AppDomain.Unload(dom1); // Second AppDomain AppDomain dom2 = AppDomain.CreateDomain("domain2"); Assembly assem2 = dom2.Load(file); Stopwatch sw2 = Stopwatch.StartNew(); var types2 = assem2.GetTypes(); sw2.Stop(); double time2 = sw2.Elapsed.TotalMilliseconds; AppDomain.Unload(dom2); Console.WriteLine($"First Load: {time1} milliseconds"); Console.WriteLine($"Second Load: {time2} milliseconds");
Contoh ini mencipta dua AppDomains dan memuatkan DLL ke dalam setiap satu. Ia kemudian mengukur masa yang diambil oleh GetTypes() untuk kedua-dua keadaan. Perbezaan dalam pemasaan boleh menunjukkan overhed yang ditanggung dengan memuat semula DLL.
Pengumpulan Sampah Eksplisit
assem = null tidak mencukupi untuk mengeluarkan sumber yang diperuntukkan kepada Perhimpunan. Memanggil pemungut sampah secara eksplisit juga tidak akan membantu, kerana sumber khusus AppDomain tidak diurus olehnya. Menggunakan AppDomain baharu ialah pendekatan yang disyorkan untuk memunggah pemasangan dan melepaskan sumber berkaitannya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memunggah dengan Cekap Perhimpunan yang Dimuat dengan Assembly.LoadFrom()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Gulc: Perpustakaan C dibina dari awal

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?
