パッケージconcat_stringの インポート( "バイト" "FMT" "のStrConv" "文字列" "テスト" ) CONST番号= 100 FUNC BenchmarkSprintf(B * testing.B){ b.ResetTimer() インデックスの:= 0; インデックス<bNの。インデックス++ { iについて:= 0; 私は数字を<; I ++ { VARの文字列 S = fmt.Sprintf( "体積%の体積%"、S、I) } } b.StopTimer() } FUNC BenchmarkStringBuilder(b *表testing.B){ b.ResetTimer() インデックスの:= 0 ; インデックス<bNの。インデックス++ { VARビルダーstrings.Builder 私のために:= 0; 私は数字を<; 私は{++ builder.WriteString(のStrConvを。 } b.StopTimer() } BechmarkSytesBuf(B * testing.B){FUNC b.ResetTimer() インデックスの:= 0; インデックス<bNの。インデックス++ { bytes.Buffer BUF VAR 私のために:= 0; 私は数字を<; 私は{++ buf.WriteString(strconv.Itoa(I)) } } b.StopTimer() } BechmarkStringAdd FUNC(B * testing.B){ b.ResetTimer()の インデックスの:= 0; インデックス<bNの。インデックス++ { VARの文字列 iに対する:= 0; 私は数字を<; I ++ { S + = strconv.Itoa(I) } } b.StopTimer() }
比較すると、我々は最高のパフォーマンスstring.Builderとbytes.Bufferことがわかりました