基本上我在 Go 1.2 中遇到了同样的问题,如下所述:
https://groups.google.com/forum/#!topic/golang-nuts/TYai0DVoYwg
有没有办法在不重新编译 Go 的情况下为我的 Go 程序增加 StackMin?
最佳答案
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
关于go - 为 Go 1.2 增加 StackMin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21169852/