示例代码请访问: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…