Soalan:
Walaupun memori timbunan secara teorinya boleh diperuntukkan kepada RAM yang tersedia, mengapa adakah saiz memori tindanan sangat terhad, biasanya sekitar 1 MB?
Jawapan:
Berbeza dengan timbunan, yang boleh diperuntukkan secara rawak, timbunan mesti disimpan bersebelahan lokasi ingatan. Ini bermakna bahawa sebahagian besar ruang alamat maya mesti dikhaskan untuk tindanan, walaupun ia tidak digunakan serta-merta.
Sebagai contoh, dalam aplikasi 32-bit dengan ruang alamat maya 2GB, tindanan 2MB saiz mengehadkan bilangan maksimum utas kepada 1024. Meningkatkan saiz tindanan kepada 100MB akan mengurangkan lagi had utas kepada kira-kira 20. Ini boleh menjadi masalah untuk aplikasi seperti pelayan web dan program GUI.
Menariknya, had ini juga berterusan pada platform 64-bit. Walaupun sebab teknikalnya tidak jelas, ada spekulasi bahawa pembangun telah terbiasa menyusun amalan terbaik, seperti mengelakkan peruntukan objek yang besar pada tindanan dan melaraskan saiz tindanan secara manual apabila perlu. Oleh itu, keperluan untuk sokongan tindanan "besar" pada sistem 64-bit masih belum diterokai.
Atas ialah kandungan terperinci Mengapa Saiz Memori Tindanan Lazimnya Terhad kepada Sekitar 1 MB, Walaupun Ketersediaan Teoritis RAM untuk Memori Timbunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!