[go学习笔记]四十九、高效字符串链接

345 阅读1分钟

示例代码请访问:github.com/wenjianzhan…

这里提到字符串链接,是因为我们在程序开发当中使用常用场景实在是太多了,无论是日志的输出,还是链接一个字符串返还,都会用到字符串链接,像输出日志,往往会被常常调用,即便是很小的程序都会造成开销的影响,

测试代码 github.com/wenjianzhan…

执行 bench

go test -bench=.

结果输出

$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/wenjianzhang/golearning/src/ch48
BenchmarkSprintf-4                100000             16312 ns/op
BenchmarkStringBuilder-4         2000000               848 ns/op
BenchmarkBytesBuf-4              1000000              1102 ns/op
BenchmarkStringAdd-4              300000              4872 ns/op
PASS
ok      github.com/wenjianzhang/golearning/src/ch48     8.329s

可以看出在这四个方法里边 strings.builder的性能是最好的,其次是Bytes.buffer;

推荐使用

go 1.10 以后的版本使用strings.Builder

在这之前 使用 Bytes.Buffer

示例代码请访问:github.com/wenjianzhan…