981377660LMT / ts

ts学习
6 stars 1 forks source link

Golang3种数组拷贝方式性能分析 #415

Open 981377660LMT opened 8 months ago

981377660LMT commented 8 months ago

https://juejin.cn/post/7134957581801357348

981377660LMT commented 8 months ago
拷贝方式 | 性能 | 适合场景 -- | -- | -- for | 较差 | 无法使用append和copy的场景,比如类型不同,需要更加复杂的判断等 copy | 好 | 适合提前已经分配数组容量,且不是尾部追加的方式 append | 好 | 适合大多数情况,尾部追加 可以看到copy的性能是最好的,当然append的性能也接近copy,for性能较差。 bash复制代码BenchmarkFori-8 19831 52749 ns/op BenchmarkAppend-8 775945 1478 ns/op BenchmarkCopy-8 815556 1473 ns/op

大部分情况下还是建议使用append,不仅性能好,动态扩展容量,而且代码看起来更加清晰!


981377660LMT commented 8 months ago

copy 和 append 都调用了memmove 函数