Split Stacks sur amd64
Le concept de "split stacks" a été discuté concernant les optimisations d'exécution. Cependant, certains experts affirment que de telles techniques peuvent s'avérer inutiles sur les architectures 64 bits, en particulier amd64.
Inutilité sur amd64
Sur les architectures 64 bits comme amd64, le l'espace d'adressage virtuel est nettement plus grand que celui de ses homologues 32 bits. Cela permet des millions de plages d'adresses de pile, chacune aussi grande qu'un espace d'adressage entier de 32 bits.
Modèle de mémoire plate et optimisation de la pile
Avec le modèle de mémoire plate utilisé dans les systèmes modernes, le système d'exploitation peut allouer de grandes parties d'espace d'adressage virtuel aux piles et mapper uniquement la première page (4 Ko) à la mémoire physique. À mesure que la pile s'agrandit, le système d'exploitation remappe dynamiquement les pages supplémentaires. En tirant parti de cette fonctionnalité, les piles peuvent croître et diminuer de manière contiguë dans la mémoire virtuelle, ce qui entraîne des prologues de fonctions efficaces (optimisations de code).
Opérations de pile O(1)
En outre , en ajustant les seuils d'allocation basés sur des principes tels que les tableaux dynamiques, on peut atteindre une complexité moyenne de O(1) pour les opérations de pile. Cela optimise la gestion des piles tout en prenant en charge un nombre virtuel de piles qui peuvent s'étendre jusqu'à la taille souhaitée.
Conclusion
Sur la base de ces informations, il est vrai que les piles divisées sont généralement inutiles sur les architectures 64 bits comme amd64, car l'espace d'adressage virtuel plus grand permet une gestion efficace de la pile sans la surcharge des techniques de pile divisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!