go - 为 Go 1.2 增加 StackMin

标签 go

基本上我在 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/

相关文章:

parallel-processing - goroutines 在多核处理器上的表现如何

go - 接口(interface)类型上的开关盒

go - fmt.Scanf 在 Go 中无法正常工作

postgresql - 如何计算查询中的行数?

javascript - 内部网络上的 Websockets 地址需要静态 ip?

security - Golang WebSocket 应用程序中的身份验证

http - 仅下载文件的一部分

pointers - 如何使用interface{}将整数作为指针传递给函数

go - 错误 "cannot download, $GOPATH not set."

go - 在反向代理中多次重复 http.Request