Ich suche nach einer Möglichkeit, die für Terminalanwendungen in OS X 10.10 verfügbare Stapelgröße (nicht unbedingt dauerhaft) zu erhöhen.
Ich weiß, dass es im Internet und insbesondere hier (z. B. in diesem Fall ) viele Fragen im Zusammenhang mit sich ändernden Umgebungsvariablen gibt, einschließlich der Stapelbegrenzung, aber keine der vorgeschlagenen Lösungen, die ich gefunden habe, scheint für mich zu funktionieren.
Das Beste, was ich daraus machen kann, launchctl
ist die Verwendung von sudo launchctl limit stack 67104768 67104768
67104768 als Standard-Hardlimit. Andere launchctl
Befehle mit höheren Grenzwerten scheinen keine Wirkung zu haben.
Dann gibt es sysctl
, aber seine Manpages berichten kern.stack_size
als unveränderlich.
Ich hoffe, ich habe keine Lösungen übersehen, die bereits irgendwo vorgeschlagen wurden. Jede Hilfe wäre sehr dankbar!
Bearbeiten: Ich möchte das Stapellimit erhöhen, um einen Fehler in ocamlopt, dem nativen OCaml-Compiler, zu umgehen, der die Verarbeitung eines bestimmten (sinnvollen) Programms überläuft. Ich kann den Fehlerbericht momentan nicht finden.
limit.stack.plist
Stapellimit und speichern als in launchDaemons?Antworten:
Eine Möglichkeit, die Stapelgröße zu erhöhen, besteht darin, Folgendes zu verwenden
ulimit
:Denken Sie daran, dass es anscheinend ein hartes Limit für die Größe des Stacks unter OSX gibt und dieses Limit bei 65532 kb zu liegen scheint:
ulimit -s
Ist auch vorübergehend und wird zurückgesetzt, sobald die Terminalsitzung endet.Wenn Sie sicherstellen möchten, dass der Stapel für jede Terminalsitzung erhöht wird, können Sie den
ulimit -s
Befehl in Ihre .zshrc-Datei oder eine entsprechende Datei einfügen.quelle
ulimit -s unlimited
scheint auf 65532 Kb begrenzt zu sein:ulimit -a | grep stack
gibt-s: stack size (kbytes) 65532