从C/C++过来,问几个关于go语言性能问题

rwxdfbb · · 3665 次点击
1.会复制的,但go的栈会建立内存池,重复的栈内存申请会从内存池中进行分配,避免从系统申请提高效率。但总的内存使用量会较大,可用使用指针定义避免复制,但会引入新的问题,如果chan 数组很大的话,大量指针对象会导致gc效率过低的问题,所以不建议在数组或MAP中使用指针 2.gc 不用的chan 会有gc 进行内存回收,不会有问题。 3.go 里没有 iterator,你代码列出的这个应用场景相比c 有性能耗损。在map value里放指针可以解决这个问题,但会引入新的问题就是gc效率问题。 最后 : go 不是 c 相比 c语言是有些缺点的,比如不支持手动gc 导致你提到的问题 1 和3 。 总体来说有点内存换效率的意思。 如果go的优点不足以吸引你,那c 还是最佳选择。
#2
更多评论
1.有复制,如果真的很大,可以考虑用指针 2.不用close也能回收 3.还是考虑指针
#1