Tăng giới hạn ngăn xếp trong OS X Yosemite


12

Tôi đang tìm cách để (không nhất thiết là vĩnh viễn) tăng kích thước ngăn xếp có sẵn cho các ứng dụng đầu cuối trong OS X 10.10.

Tôi biết có rất nhiều câu hỏi liên quan đến việc thay đổi các biến môi trường, bao gồm giới hạn ngăn xếp, trên internet và đặc biệt ở đây (ví dụ: câu hỏi này ) nhưng không có giải pháp đề xuất nào tôi tìm thấy có vẻ hiệu quả với tôi.

Phần lớn tôi nhận được launchctllà sử dụng sudo launchctl limit stack 67104768 67104768trong đó 67104768 là giới hạn cứng mặc định. Các launchctllệnh khác với giới hạn cao hơn dường như không có hiệu lực.

Sau đó sysctl, nhưng trang người đàn ông của nó báo cáo kern.stack_sizelà không thể thay đổi.

Tôi hy vọng tôi đã không bỏ qua bất kỳ giải pháp nào đã được đề xuất ở đâu đó; Mọi sự trợ giúp sẽ rất được trân trọng!

Chỉnh sửa: Tôi muốn tăng giới hạn ngăn xếp để khắc phục lỗi dường như là một lỗi trong ocamlopt, trình biên dịch gốc OCaml, rằng quá trình xử lý stack-tràn đó xử lý một chương trình cụ thể (hợp lý); Tôi dường như không thể tìm thấy báo cáo lỗi ngay bây giờ.


1
Bạn có hỏi rõ ràng làm thế nào để tăng giới hạn ngăn xếp của Yosemite không?

1
Đúng. Xin lỗi, nếu điều đó không rõ ràng từ văn bản.
Christopher

1
Tôi đã tìm thấy một câu hỏi tại superuser.com/questions/836883/ Có thể giúp bạn ... Trong câu trả lời đầu tiên, nó cho thấy giới hạn tối đa. Có lẽ thay đổi nó để giới hạn ngăn xếp và lưu như limit.stack.plistvào launchDaemons?
TheBro21

1
Cảm ơn! Tôi chỉ thử điều đó, nhưng không có may mắn.
Christopher

1
Đồng ý. Và bạn đã thực sự tìm thấy các tập tin giới hạn? Nếu nó không có ở đó. Tôi sẽ dành thời gian tìm kiếm nó và khắc phục vấn đề. Và cấu hình plist mà tôi đã hướng dẫn trước đó.
TheBro21

Câu trả lời:


5

Một cách để tăng kích thước ngăn xếp là sử dụng ulimit:

shell> ulimit -s new_size_in_kb

Chỉ cần lưu ý rằng dường như có một giới hạn cứng về mức độ lớn của ngăn xếp trên OSX và giới hạn đó dường như là 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

Cũng ulimit -slà tạm thời và đặt lại sau khi phiên cuối cùng kết thúc.

Nếu bạn muốn đảm bảo rằng ngăn xếp được tăng lên cho mỗi phiên cuối, bạn có thể đặt ulimit -slệnh trong .zshrc hoặc tương đương.


Cảm ơn vì điều đó! Thật không may trong trường hợp cụ thể này, tôi cần tăng kích thước ngăn xếp vượt quá giới hạn cứng của OSX và tôi đã hy vọng tìm được giải pháp tăng giới hạn này.
Christopher

Vâng: cũng ulimit -s unlimitedcó vẻ như bị giới hạn ở 65532 Kb: ulimit -a | grep stackcho-s: stack size (kbytes) 65532
fpierfed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.