什么时候返回值什么时候返回指针?

2020-04-08 11:15:55 +08:00
 index90
自从了解到“逃逸机制”,写程序时心智负担增加不少。
平时开发时,是否需要有意识地去考虑内存分配问题?
还是更专注于语义?有没有这方面的方法论?
4446 次点击
所在节点    Go 编程语言
24 条回复
yuguorui96
2020-04-09 09:17:08 +08:00
@timothyye ownership 不是规避这种问题,是强迫你要显式的考虑这种问题。
对于 Golang 来说完全没必要考虑逃逸分析带来的性能影响,都用 Golang 了这种问题交给 GC 和优化器就完了,要不 golang 的优势何在?
yangbonis
2020-04-09 13:24:07 +08:00
语义和内存分配应该不是矛盾的
TransAM
2020-04-24 21:37:12 +08:00
方法论就是遵循语言的设计。当然 golang 这种允许你选地方的,就参考其他语言,比如小对象直接赋值,大对象用 new 和指针。

大量小对象的场景(比如游戏单位)就搞个对象池,避免重复创建回收。

很多语言没有逃逸分析,还有的语言强制你把对象放堆上(比如 java ),还不是一样写?
sunshinev
2020-05-06 15:28:03 +08:00
不希望值拷贝的时候,就用指针呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/660360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX