Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.
Asisten penelusuran kesalahan terkelola memberInfoCacheCreation (MDA) diaktifkan saat cache MemberInfo dibuat. Ini adalah indikasi kuat dari program yang memanfaatkan fitur refleksi yang mahal sumber daya.
Gejala
Set kerja program meningkat karena program menggunakan refleksi yang mahal sumber daya.
Penyebab
Operasi refleksi yang melibatkan objek MemberInfo dianggap mahal sumber daya karena harus membaca metadata yang disimpan di halaman dingin dan secara umum mereka menunjukkan program menggunakan beberapa jenis skenario yang terlambat terikat.
Resolusi
Anda dapat menentukan di mana pantulan digunakan dalam program Anda dengan mengaktifkan MDA ini lalu menjalankan kode Anda dalam debugger atau melampirkan dengan debugger saat MDA diaktifkan. Di bawah debugger, Anda akan mendapatkan jejak tumpukan yang menunjukkan di mana cache MemberInfo dibuat dan dari sana Anda dapat menentukan di mana program Anda menggunakan refleksi.
Resolusi tergantung pada tujuan kode. MDA ini memperingatkan Anda bahwa program Anda memiliki skenario yang terlambat terikat. Anda mungkin ingin menentukan apakah Anda dapat mengganti skenario terikat awal atau mempertimbangkan performa skenario akhir yang terikat.
Efek pada Runtime
MDA ini diaktifkan untuk setiap cache MemberInfo yang dibuat. Dampak performa dapat diabaikan.
Output
MDA mengeluarkan pesan yang menunjukkan cache MemberInfo dibuat. Gunakan debugger untuk mendapatkan jejak tumpukan yang menunjukkan di mana program Anda menggunakan pantulan.
Konfigurasi
<mdaConfig>
<assistants>
<memberInfoCacheCreation/>
</assistants>
</mdaConfig>
Contoh
Kode sampel ini akan mengaktifkan MDA memberInfoCacheCreation.
using System;
public class Exe
{
public static void Main()
{
typeof(object).GetMethods();
}
}