正如标题所述:关于堆栈大小是否有任何一般的“经验法则”。我猜大小会因操作系统、架构、缓存大小、可用 RAM 大小等而有所不同。
但是一般来说可以说什么,或者有什么方法可以找出,这个程序允许使用多少堆栈?。作为一个额外的问题,是否有任何方法(使用编译器标志等(这里主要考虑 C/C++,但也更通用))堆栈的大小可以由用户设置为固定大小?
顺便说一句,我完全出于好奇而问,我没有堆栈溢出。 :)
最佳答案
在 Windows 中,线程的默认堆栈大小为一百万字节,与操作系统等无关。
在托管代码(C#、VB 等)中,您可以使用此 ctor 强制新线程具有不同的堆栈大小:
http://msdn.microsoft.com/en-us/library/5cykbwz4.aspx
要更改 Windows 程序的默认线程的堆栈大小,无论是否托管,都可以使用 editbin 实用程序:
关于c++ - 某个程序的堆栈内存有多大,是否有任何编译器标志可以设置它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15329281/