Mengapa orang berpikir bahwa kebocoran memori di .NET tidak sama dengan kebocoran lainnya?
Kebocoran memori adalah ketika Anda melampirkan ke sumber daya dan jangan biarkan itu pergi. Anda dapat melakukan ini baik dalam kode terkelola dan tidak terkelola.
Mengenai .NET, dan alat pemrograman lain, ada ide tentang pengumpulan sampah, dan cara lain untuk meminimalkan situasi yang akan membuat aplikasi Anda bocor. Tetapi metode terbaik untuk mencegah kebocoran memori adalah Anda perlu memahami model memori yang mendasarinya, dan cara kerja berbagai hal, pada platform yang Anda gunakan.
Percaya bahwa GC dan sihir lain akan membersihkan kekacauan Anda adalah cara singkat untuk kebocoran memori, dan akan sulit ditemukan nanti.
Ketika coding tidak dikelola, Anda biasanya memastikan untuk membersihkan, Anda tahu bahwa sumber daya yang Anda pegang, akan menjadi tanggung jawab Anda untuk membersihkan, bukan milik petugas kebersihan.
Di NET. Di sisi lain, banyak orang berpikir bahwa GC akan membersihkan semuanya. Ya, memang ada gunanya bagi Anda, tetapi Anda perlu memastikan bahwa memang demikian. .NET membungkus banyak hal, jadi Anda tidak selalu tahu apakah Anda berhadapan dengan sumber daya yang dikelola atau tidak dikelola, dan Anda perlu memastikan apa yang Anda hadapi. Menangani font, sumber daya GDI, direktori aktif, basis data dll adalah hal-hal yang perlu Anda perhatikan.
Dalam istilah yang dikelola saya akan meletakkan leher saya di telepon untuk mengatakan itu hilang begitu proses dibunuh / dihapus.
Saya melihat banyak orang memiliki ini, dan saya sangat berharap ini akan berakhir. Anda tidak dapat meminta pengguna untuk menghentikan aplikasi Anda untuk membersihkan kekacauan Anda! Lihatlah browser, yang bisa berupa IE, FF dll, lalu buka, katakanlah, Google Reader, biarkan selama beberapa hari, dan lihat apa yang terjadi.
Jika Anda kemudian membuka tab lain di browser, berselancar ke beberapa situs, lalu tutup tab yang meng-host halaman lain yang membuat peramban bocor, apakah menurut Anda browser akan melepaskan memori? Tidak demikian halnya dengan IE. Di komputer saya, IE akan dengan mudah memakan memori 1 GiB dalam waktu singkat (sekitar 3-4 hari) jika saya menggunakan Google Reader. Beberapa surat kabar bahkan lebih buruk.