13 votes

Augmenter la limite de la pile dans OS X Yosemite

Je cherche un moyen d'augmenter (pas nécessairement de façon permanente) la taille de la pile disponible pour les applications terminales dans OS X 10.10.

Je sais qu'il y a beaucoup de questions liées à la modification des variables d'environnement, y compris la limite de la pile, sur Internet et ici en particulier (par ex. celui-ci ) mais aucune des solutions proposées que j'ai trouvées ne semble fonctionner pour moi.

Le plus que je retire de launchctl utilise sudo launchctl limit stack 67104768 67104768 où 67104768 est la limite dure par défaut. Autres launchctl Les commandes avec des limites plus élevées semblent n'avoir aucun effet.

Alors il y a sysctl mais ses pages de manuel signalent kern.stack_size comme immuable.

J'espère n'avoir négligé aucune solution qui aurait déjà été proposée quelque part ; toute aide serait grandement appréciée !

Edit : Je voudrais augmenter la limite de la pile pour contourner ce qui semble être un bug dans ocamlopt, le compilateur natif d'OCaml, qui provoque des débordements de pile lors du traitement d'un programme particulier (sensible) ; je n'arrive pas à trouver le rapport de bug pour le moment.

6voto

Basi Points 111

Une façon d'augmenter la taille de la pile est d'utiliser ulimit :

shell> ulimit -s new_size_in_kb

Gardez juste à l'esprit qu'il semble y avoir une limite stricte sur la taille de la pile sous OSX et que cette limite semble être de 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

Aussi ulimit -s est temporaire et se réinitialise dès la fin de la session du terminal.

Si vous voulez vous assurer que la pile est augmentée pour chaque session de terminal, vous pouvez mettre la directive ulimit -s dans votre .zshrc ou équivalent.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X