kadang-kadang dapatkan pengecualian OutOfMemory dari aplikasi .NET yang sibuk
Jawaban untuk ini terlalu rumit untuk ditampung dalam suatu jawaban. Lihat " Tuning. Performa Aplikasi NET " untuk perawatan lengkap dari subjek.
Berikut ini ringkasan yang sangat disederhanakan (tapi masih cukup bagus) dari Bruno Jouhier :
Lebih jauh lagi, .NET runtime tidak membiarkan Anda mencapai 2 GB. Pengumpul sampah bekerja dengan menyalin objek hidup, sehingga diperlukan ruang yang cukup untuk melakukan salinannya.
Edit:
Ini usaha saya untuk penjelasan ...
Jika Anda bertanya-tanya berapa ukuran maksimum memori proses pekerja (seperti yang dilaporkan oleh Task Manager) untuk Proses Pekerja ASP.NET di x86, jawabannya adalah "itu tergantung" .
Dalam setiap jenis kode yang dikelola seperti Java atau .NET, programmer melepaskan kendali memori yang baik sebagai penebusan dosa karena tidak harus berurusan dengan pointer. Saat program dijalankan, Heap dan Stack akan dibersihkan secara berkala oleh Pengumpul Sampah .
Khususnya dalam hal ASP.NET, pengumpul sampah berjalan di dalam proses pekerja yang sama dengan situs web. GC mengkonsumsi memori sendiri. Berapa banyak memori sepenuhnya merupakan fungsi dari bagaimana kode aplikasi Anda ditulis. Satu aplikasi mungkin dapat menggunakan memori 1,8GB sementara yang lain mungkin tersedak 500MB. Untuk memahami alasannya , Anda perlu membuat profil aplikasi spesifik Anda.