Meningkatkan batas stack di OS X Yosemite

12

Saya mencari cara untuk (tidak perlu secara permanen) meningkatkan ukuran tumpukan yang tersedia untuk aplikasi terminal di OS X 10.10.

Saya tahu ada banyak pertanyaan yang berkaitan dengan perubahan variabel lingkungan, termasuk batas tumpukan, di internet dan di sini khususnya (misalnya yang ini ) tetapi tidak ada solusi yang diusulkan yang saya temukan tampaknya bekerja untuk saya.

Yang paling saya dapatkan launchctladalah menggunakan di sudo launchctl limit stack 67104768 67104768mana 67104768 adalah batas keras default. launchctlPerintah lain dengan batas yang lebih tinggi tampaknya tidak berpengaruh.

Lalu ada sysctl, tetapi halaman manualnya melaporkan kern.stack_sizesebagai tidak dapat diubah.

Saya harap saya tidak mengabaikan solusi apa pun yang telah diusulkan di suatu tempat; bantuan apa pun akan sangat dihargai!

Sunting: Saya ingin menambah batas stack untuk mengatasi apa yang tampaknya menjadi bug di ocamlopt, kompiler asli OCaml, yang stack-overflow memproses program tertentu (masuk akal); Sepertinya saya tidak dapat menemukan laporan bug saat ini.

Christopher
sumber
1
Apakah Anda secara eksplisit bertanya bagaimana cara meningkatkan batas tumpukan Yosemite?
1
Iya. Maaf, jika itu tidak jelas dari teks.
Christopher
1
Saya menemukan pertanyaan di superuser.com/questions/836883/… yang mungkin membantu Anda ... Pada jawaban pertama, itu menunjukkan batas maksimal file. Mungkin mengubahnya ke batas stack dan simpan sebagai limit.stack.plistlaunchDaemons?
TheBro21
1
Terima kasih! Saya baru saja mencobanya, tetapi tidak berhasil.
Christopher
1
Baik. Dan apakah Anda benar-benar menemukan file batas? Jika tidak ada di sana. Saya akan menghabiskan waktu mencarinya dan memperbaiki masalah. Dan mengkonfigurasi plist yang saya perintahkan sebelumnya.
TheBro21

Jawaban:

5

Salah satu cara untuk meningkatkan ukuran tumpukan adalah dengan menggunakan ulimit:

shell> ulimit -s new_size_in_kb

Hanya perlu diingat bahwa tampaknya ada batas keras tentang seberapa besar tumpukan dapat di OSX dan batas itu tampaknya 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

Juga ulimit -sbersifat sementara dan mengatur ulang setelah sesi terminal berakhir.

Jika Anda ingin memastikan bahwa tumpukan ditingkatkan untuk setiap sesi terminal, Anda bisa meletakkan ulimit -sperintah di .zshrc atau yang setara.

fpierfed
sumber
Terima kasih untuk itu! Sayangnya dalam kasus khusus ini saya perlu meningkatkan ukuran tumpukan di luar batas keras OSX dan saya berharap untuk menemukan solusi yang meningkatkan batas ini.
Christopher
Ya: ulimit -s unlimitedtampaknya juga terbatas pada 65532 Kb: ulimit -a | grep stackmemberi-s: stack size (kbytes) 65532
fpierfed