Nó chỉ là một kích thước mặc định. Nếu bạn cần nhiều hơn, bạn có thể nhận được nhiều hơn - thường xuyên nhất bằng cách yêu cầu trình liên kết phân bổ thêm không gian ngăn xếp.
Nhược điểm của việc có nhiều ngăn xếp là nếu bạn tạo nhiều luồng, mỗi luồng sẽ cần một ngăn xếp. Nếu tất cả các ngăn xếp đang phân bổ nhiều MB, nhưng không sử dụng nó, không gian sẽ bị lãng phí.
Bạn phải tìm sự cân bằng thích hợp cho chương trình của mình.
Một số người, như @BJovke, tin rằng bộ nhớ ảo về cơ bản là miễn phí. Đúng là bạn không cần phải có bộ nhớ vật lý hỗ trợ tất cả bộ nhớ ảo. Ít nhất bạn phải có khả năng cung cấp địa chỉ cho bộ nhớ ảo.
Tuy nhiên, trên một PC 32 bit điển hình, kích thước của bộ nhớ ảo cũng giống như kích thước của bộ nhớ vật lý - bởi vì chúng ta chỉ có 32 bit cho bất kỳ địa chỉ nào, dù là ảo hay không.
Bởi vì tất cả các luồng trong một tiến trình chia sẻ cùng một không gian địa chỉ, chúng phải phân chia nó giữa chúng. Và sau khi hệ điều hành thực hiện xong, chỉ còn lại 2-3 GB cho một ứng dụng. Và kích thước đó là giới hạn cho cả bộ nhớ vật lý và bộ nhớ ảo, bởi vì không còn địa chỉ nào nữa.