Split Stacks pada amd64
Konsep "split stacks" telah dibincangkan berkenaan pengoptimuman masa jalan. Walau bagaimanapun, sesetengah pakar berpendapat bahawa teknik sedemikian mungkin tidak diperlukan pada seni bina 64-bit, terutamanya amd64.
Ketidakperluan pada amd64
Pada seni bina 64-bit seperti amd64, ruang alamat maya adalah jauh lebih besar berbanding dengan rakan sejawat 32-bit. Ini membenarkan berjuta-juta julat alamat tindanan, setiap satu sama besar dengan ruang alamat keseluruhan 32-bit.
Model Memori Rata dan Pengoptimuman Tindanan
Dengan model memori rata digunakan dalam sistem moden, sistem pengendalian boleh memperuntukkan sebahagian besar ruang alamat maya untuk tindanan dan memetakan hanya halaman pertama (4kB) ke memori fizikal. Apabila timbunan bertambah, OS memetakan semula halaman tambahan secara dinamik. Dengan memanfaatkan ciri ini, tindanan boleh berkembang dan mengecut secara bersebelahan dalam memori maya, menghasilkan prolog fungsi yang cekap (pengoptimuman kod).
O(1) Operasi Tindanan
Selain itu , dengan menala ambang peruntukan berdasarkan prinsip seperti tatasusunan dinamik, seseorang boleh mencapai purata kerumitan O(1) untuk operasi tindanan. Ini mengoptimumkan pengurusan tindanan sambil menyokong bilangan tindanan hampir無限 yang boleh berkembang kepada saiz yang diingini.
Kesimpulan
Berdasarkan cerapan ini, memang benar bahawa tindanan berpecah biasanya tidak diperlukan pada seni bina 64-bit seperti amd64, kerana ruang alamat maya yang lebih besar membolehkan pengurusan tindanan yang cekap tanpa overhed teknik tindanan berpecah.
Atas ialah kandungan terperinci Adakah Split Stacks Diperlukan pada amd64?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!