Rumah >pembangunan bahagian belakang >C++ >Mengapakah Saiz Tindanan C# Terhad kepada 1 MB (32-bit) dan 4 MB (64-bit)?
Memahami Saiz Tindanan Terhad C#: 1 MB (32-bit) dan 4 MB (64-bit)
Walaupun RAM yang banyak hari ini, saiz tindanan C# kekal dihadkan pada 1 MB untuk 32-bit dan 4 MB untuk proses 64-bit. Pengehadan yang kelihatan sewenang-wenang ini berpunca daripada reka bentuk sejarah Windows NT.
Lalai asal 1 MB, yang ditetapkan oleh pasukan David Cutler, adalah standard untuk aplikasi asli yang sering mencipta bingkai tindanan besar untuk mengendalikan rentetan dan penimbal. Amalan ini, terdedah kepada serangan limpahan penampan, mempengaruhi keputusan untuk menyekat saiz bingkai tindanan dalam kod terurus seperti C#.
Walaupun aplikasi .NET terutamanya memperuntukkan rentetan dan tatasusunan pada timbunan kutipan sampah (GC), mengekalkan tindanan 1 MB memastikan keserasian dengan kod asli. Penggunaan utama timbunan dalam .NET adalah semasa penyusunan JIT, menggunakan hanya beberapa puluh kilobait.
Versi awal ruang tindanan Common Language Runtime (CLR) yang dipraperuntukkan, menyimpannya dalam fail paging untuk pertukaran yang boleh dipercayai. Sistem pengendalian moden dan peningkatan RAM telah menyebabkan ini tidak diperlukan. CLR tidak lagi pra-peruntukkan, seterusnya mengurangkan keperluan untuk saiz tindanan yang besar.
Ringkasnya, had saiz menggambarkan konteks sejarah dan keserasian dengan program asli. Saiz semasa, walaupun nampaknya kecil, menyediakan ruang yang mencukupi untuk kebanyakan aplikasi C#, memastikan keserasian ke belakang, mencegah overrun memori dan mengekalkan penggunaan sumber kompilasi JIT yang boleh diramal.
Atas ialah kandungan terperinci Mengapakah Saiz Tindanan C# Terhad kepada 1 MB (32-bit) dan 4 MB (64-bit)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!