Maison >développement back-end >Golang >Les Split Stacks sont-elles nécessaires sur les architectures x86_64 ?
Split Stacks inutile sur x86_64 ?
Le sujet des split stacks dans les modèles d'exécution a soulevé des questions sur leur nécessité sur les architectures 64 bits comme x86_64. Certains avis suggèrent que les piles fractionnées ne sont plus nécessaires en raison de l'espace d'adressage élargi disponible.
Réponse à la question 1 : Interprétation des opinions
Oui, les opinions citées dans la question implique que les piles divisées ne sont pas nécessaires sur les architectures x86_64. Les références aux « millions de threads » et au « cas d'utilisation étroit » sur les systèmes 32 bits indiquent que le grand espace d'adressage des systèmes 64 bits peut accueillir un nombre suffisant de plages de pile.
Réponse à la question 2 : justification de l'inutilité
Les piles divisées ne sont plus nécessaires sur les architectures 64 bits en raison de l'espace d'adressage virtuel beaucoup plus grand. Cela permet à chaque pile de disposer d'une plage d'adresses dédiée et importante, comparable à l'ensemble de l'espace d'adressage de 32 bits.
Dans les modèles de mémoire plate modernes, l'unité matérielle de gestion de la mémoire (MMU) traduit les adresses virtuelles en adresses physiques. emplacements mémoire. Sur x86_64, il s'avère plus efficace d'allouer de grandes parties d'espace d'adressage virtuel à chaque pile et de mapper uniquement la page initiale à la RAM réelle.
Cette approche permet à la pile de croître et de se réduire selon les besoins, en utilisant des espaces virtuels contigus. adresses. Le système d'exploitation peut reconfigurer la MMU pour mapper des pages supplémentaires de mémoire virtuelle à la mémoire réelle à mesure que la pile augmente ou diminue au-delà des seuils spécifiés.
En sélectionnant soigneusement ces seuils, les piles peuvent se comporter comme des tableaux dynamiques avec O(1 ) complexité moyenne des opérations de pile. Ils conservent l'avantage de prendre en charge des millions de piles qui peuvent atteindre des tailles arbitraires tout en consommant uniquement la mémoire qu'elles utilisent.
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!