GNU/Linux >> Tutoriales Linux >  >> Linux

Por qué en Linux moderno, el tamaño de pila predeterminado es tan grande:8 MB (incluso 10 en algunas distribuciones)

Como han dicho otros, y como se menciona en el enlace que proporcionó en su pregunta, tener una pila de 8MiB no daña nada (aparte de consumir espacio de direcciones, en un sistema de 64 bits eso no importa).

Linux ha usado pilas de 8MiB durante mucho tiempo; el cambio se introdujo en la versión 1.3.7 del kernel, en julio de 1995. En aquel entonces se presentaba como la introducción de un límite, antes no lo había:

Limite la pila a algún valor predeterminado sensato:root siempre puede aumentar este límite si es necesario. 8 MB parece razonable.

En Linux, el límite de la pila también afecta el tamaño de los argumentos del programa y el entorno, que están limitados a una cuarta parte del límite de la pila; el kernel impone un mínimo de 32 páginas para los argumentos y el entorno.

Para subprocesos, si el límite de pila (RLIMIT_STACK ) es ilimitado, pthread_create aplica sus propios límites a las pilas de subprocesos nuevos, y en la mayoría de las arquitecturas, eso es menos de 8 MiB.


8 MB es el virtual tamaño de la pila. Se producirá un error de página cuando su aplicación intente usar más pila de la que está asignada físicamente actualmente. El controlador de fallos de página del kernel asignará un físico página y luego su aplicación continuará.

Consulte https://unix.stackexchange.com/a/280865/21212 para obtener una explicación completa.

Entonces, reducir el tamaño de su pila debería no tienen ningún efecto en la reducción del uso de la memoria física de su aplicación.


Linux
  1. ¿Por qué la siguiente manera no cambia el tamaño límite del archivo principal?

  2. Cómo cambiar el shell predeterminado en Linux

  3. ¿Cuál es la unidad de tamaño predeterminada en el comando linux ls -l?

  4. ¿Por qué la salida de algunos programas de Linux no va ni a STDOUT ni a STDERR?

  5. ¿Por qué se instala Perl de forma predeterminada con la mayoría de las distribuciones de Linux?

Cómo obtener el tamaño de un directorio en Linux

Gestión de intercambio en el sistema Linux moderno

Cómo encontrar el tamaño total de un directorio en Linux

Cómo cambiar el shell predeterminado en el sistema Linux

TrueCrypt en distribuciones modernas de Linux

Una de las distribuciones de Linux más bellas y fáciles de usar se vuelve aún mejor