>How do I know whether a variable is allocated on the heap or the stack? From a correctness standpoint, you don't need to know. Each variable in Go exists as long as there are references to it. The storage location chosen by the implementation is irrelevant to the semantics of the language.
是否传指针也没必要想太多,基本类型和本身就是引用的传值,其他一律传指针。
timothyye
2020-04-08 15:08:04 +08:00
感觉 Rust 的 ownership 机制能规避这些问题
scnace
2020-04-08 16:11:53 +08:00
前天看了 Go 夜读的内存对齐,也发现之前写的代码或多或少会有点问题(有很多的多余的内存分配),但是我一直觉得这些属于 suggestions 和,真正在这种地方遇到瓶颈的地方的场景很少,至少在平常的业务场景中,把某段业务逻辑设计再精简点,少几次 I/O 操作,优化下算法复杂度,往往产出比花在这些地方要值得。不过,很多常见优化项可以通过配置 IDE/Editor 的 golang ci lint 规则解决就是了
lewinlan
2020-04-08 16:39:02 +08:00
go 故意没有在文档中说堆栈的区别,就是让我们不要去关心堆栈问题。 同意前排的观点,先实现功能,后期再 profile 优化,别想太多。