Câu trả lời ngắn gọn là:
Khi chương trình trên Linux của bạn hộp thoại run, họ thêm và xóa dữ liệu từ the stack một cách thường xuyên như các chương trình chức năng. Kích thước ngăn xếp, tham chiếu đến dung lượng được cấp phát trong bộ nhớ cho ngăn xếp. Nếu bạn tăng kích thước ngăn xếp, cho phép chương trình tăng số lượng các thói quen có thể được gọi. Mỗi lần một hàm được gọi, dữ liệu có thể được thêm vào ngăn xếp (xếp chồng lên trên cùng của dữ liệu thường trình cuối cùng.)
Trừ khi chương trình rất phức tạp, hoặc được thiết kế cho mục đích đặc biệt, kích thước ngăn xếp 8192kb là bình thường. Một số chương trình như chương trình xử lý đồ họa yêu cầu bạn tăng kích thước của ngăn xếp để hoạt động. Vì chúng có thể lưu trữ rất nhiều dữ liệu trên ngăn xếp.
Hãy thoải mái tăng kích thước ngăn xếp cho các ứng dụng đó, nó không phải là vấn đề. Để làm như vậy, sử dụng
ulimit -s bytes
BTW, What is a StackOverflowError?
http://en.wikipedia.org/wiki/Call_stack –
một chồng tràn có thể xuất hiện với quá sâu (hoặc vô hạn) đệ quy. Hoặc có lẽ bằng cách lạm dụng 'alloca' (hoặc tương đương, như mảng biến đổi chiều dài) trong mã C. –
Liên quan: http://stackoverflow.com/questions/17671423/stack-allocation-for-process | http://unix.stackexchange.com/questions/145557/how-does-stack-allocation-work-in-linux/239323#239323 –