基本上我对Go 1.2有同样的问题,如下所述:
https://groups.google.com/forum/#!topic/golang-nuts/TYai0DVoYwg
有没有办法在不重新编译Go的情况下为我的Go程序增加StackMin?
答案 0 :(得分:5)
StackMin被编译到运行时,因此如果不重新编译Go就无法更改它。您可以在此处找到常量:http://golang.org/src/pkg/runtime/stack.h#L72
如果您无法重新编译Go,可以尝试通过人为增加程序使用的堆栈空间量来解决热拆分问题(即在热拆分之前将var foo [2<<10]byte
插入代码中函数调用) - 但这可能是命中注定,并且可能需要在程序更改时重新调整。
正如Dmitry所说,Go 1.3计划具有连续堆栈(不是堆栈段的链接列表),可以根据需要重新分配和复制。 https://docs.google.com/document/d/1wAaf1rYoM4S4gtnPh0zOlGzWtrZFQ5suE8qr2sD8uWQ/pub