Szukam sposobu (niekoniecznie na stałe) zwiększenia stosu dostępnego dla aplikacji terminalowych w OS X 10.10.
Wiem, że istnieje wiele pytań związanych ze zmianami zmiennych środowiskowych, w tym limitem stosów, w Internecie, a tu w szczególności (np. Tym ), ale żadne z zaproponowanych przeze mnie rozwiązań nie wydaje mi się skuteczne.
Najbardziej mi wydostać launchctl
się z użyciem sudo launchctl limit stack 67104768 67104768
gdzie 67104768 jest domyślnym ciężko limitu. Inne launchctl
polecenia z wyższymi limitami wydają się nie działać.
Potem jest sysctl
, ale strony podręcznika raportują kern.stack_size
jako niezmienne.
Mam nadzieję, że nie przeoczyłem żadnych rozwiązań, które zostały już gdzieś zaproponowane; każda pomoc byłaby bardzo mile widziana!
Edycja: Chciałbym zwiększyć limit stosów, aby obejść coś, co wydaje się być błędem w ocamlopt, natywnym kompilatorze OCaml, który przepełnia stos przetwarzając konkretny (rozsądny) program; Nie mogę teraz znaleźć raportu o błędzie.
limit.stack.plist
w launchDaemons?Odpowiedzi:
Jednym ze sposobów zwiększenia wielkości stosu jest użycie
ulimit
:Pamiętaj tylko, że wydaje się, że istnieje sztywny limit wielkości stosu w OSX, a limit ten wynosi 65532 kb:
ulimit -s
Jest również tymczasowy i resetuje się po zakończeniu sesji terminala.Jeśli chcesz się upewnić, że stos jest zwiększany dla każdej sesji terminala, możesz umieścić
ulimit -s
polecenie w .zshrc lub odpowiedniku.źródło
ulimit -s unlimited
wydaje się być ograniczony do 65532 Kb:ulimit -a | grep stack
daje-s: stack size (kbytes) 65532