GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi sur Linux moderne, la taille de la pile par défaut est si énorme - 8 Mo (même 10 sur certaines distributions)

Comme d'autres l'ont dit, et comme mentionné dans le lien que vous fournissez dans votre question, avoir une pile de 8 Mo ne nuit à rien (à part consommer de l'espace d'adressage - sur un système 64 bits, cela n'aura pas d'importance).

Linux utilise des piles de 8 Mo depuis très longtemps; le changement a été introduit dans la version 1.3.7 du noyau, en juillet 1995. À l'époque, il était présenté comme introduisant une limite, auparavant il n'y en avait pas :

Limitez la pile à une valeur par défaut raisonnable :root peut toujours augmenter cette limite si nécessaire. 8 Mo semblent raisonnables.

Sous Linux, la limite de pile affecte également la taille des arguments du programme et l'environnement, qui sont limités à un quart de la limite de pile; le noyau impose un minimum de 32 pages pour les arguments et l'environnement.

Pour les threads, si la limite de pile (RLIMIT_STACK ) est illimité, pthread_create applique ses propres limites aux piles de nouveaux threads - et sur la plupart des architectures, c'est moins de 8 Mo.


8 Mo est le virtuel taille de la pile. Un défaut de page se produit lorsque votre application essaie d'utiliser plus de pile que ce qui est actuellement physiquement alloué. Le gestionnaire de défauts de page du noyau se verra alors allouer un physique page, puis votre application continuera.

Voir https://unix.stackexchange.com/a/280865/21212 pour une explication complète.

Donc, réduire la taille de votre pile devrait n'ont aucun effet sur la réduction de l'utilisation de la mémoire physique de votre application.


Linux
  1. Quelle est l'unité de taille par défaut dans la commande Linux ls -l

  2. Pourquoi la sortie de certains programmes Linux ne va-t-elle ni à STDOUT ni à STDERR ?

  3. BCRYPT - Pourquoi les distributions Linux ne l'utilisent-elles pas par défaut ?

  4. Quel est l'ordre par défaut du tri Linux ?

  5. Qu'est-ce qui empêche les distributions d'utiliser le dernier noyau Linux ?

Comment obtenir la taille d'un répertoire sous Linux

Gestion du swap dans le système Linux moderne

Comment trouver la taille totale d'un répertoire sous Linux

Comment changer le shell par défaut dans le système Linux

TrueCrypt sur les distributions Linux modernes

L'une des distributions Linux les plus belles et les plus conviviales s'améliore encore