Aumentar el límite de pila en OS X Yosemite

12

Estoy buscando una manera de (no necesariamente de forma permanente) aumentar el tamaño de pila disponible para las aplicaciones de terminal en OS X 10.10.

Sé que hay muchas preguntas relacionadas con las variables de entorno cambiantes, incluido el límite de pila, en Internet y aquí en particular (por ejemplo, esta ), pero ninguna de las soluciones propuestas que he encontrado parece funcionar para mí.

Lo máximo que obtengo launchctles usar sudo launchctl limit stack 67104768 67104768donde 67104768 es el límite rígido predeterminado. Otros launchctlcomandos con límites más altos parecen no tener efecto.

Luego está sysctl, pero sus páginas de manual se informan kern.stack_sizecomo inmutables.

Espero no haber pasado por alto ninguna solución que ya se haya propuesto en alguna parte; Cualquier ayuda sería muy apreciada!

Editar: Me gustaría aumentar el límite de la pila para evitar lo que parece ser un error en ocamlopt, el compilador nativo de OCaml, que desborda la pila procesando un programa particular (sensible); Parece que no puedo encontrar el informe de error en este momento.

Christopher
fuente
1
¿Estás preguntando explícitamente cómo aumentar el límite de apilamiento de Yosemite?
1
Si. Lo siento, si eso no estaba claro en el texto.
Christopher
1
Encontré una pregunta en superuser.com/questions/836883/… que podría ayudarlo ... En la primera respuesta, muestra un límite máximo de archivos. ¿Quizás cambiarlo al límite de pila y guardar como limit.stack.plisten launchDaemons?
TheBro21
1
¡Gracias! Solo intenté eso, pero no tuve suerte.
Christopher
1
Okay. ¿Y realmente encontraste el archivo límite? Si no está ahí. Pasaré tiempo buscándolo y solucionando el problema. Y configurando esa lista, instruí anteriormente.
TheBro21

Respuestas:

5

Una forma de aumentar el tamaño de la pila es usar ulimit:

shell> ulimit -s new_size_in_kb

Solo tenga en cuenta que parece haber un límite estricto sobre cuán grande puede ser la pila en OSX y ese límite parece ser 65532 kb:

shell> ulimit -s 65533
ulimit: value exceeds hard limit
shell> ulimit -s 65532
shell> ulimit -a | grep stack
-s: stack size (kbytes)             65532

También ulimit -ses temporal y se restablece una vez que finaliza la sesión de terminal.

Si desea asegurarse de que la pila se incrementa para cada sesión de terminal, puede poner el ulimit -scomando en su .zshrc o equivalente.

fpierfed
fuente
¡Gracias por eso! Desafortunadamente, en este caso particular, necesito aumentar el tamaño de la pila más allá del límite rígido de OSX y esperaba encontrar una solución que aumente este límite.
Christopher
Sí: también ulimit -s unlimitedparece que se limita a 65532 Kb: ulimit -a | grep stackda-s: stack size (kbytes) 65532
fpierfed