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.