Skip to content

Instantly share code, notes, and snippets.

@thiagocaiubi
Forked from dtjm/join_test.go
Created January 24, 2018 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thiagocaiubi/77c363cd2f28d1dc91d7a699d3452d2f to your computer and use it in GitHub Desktop.
Save thiagocaiubi/77c363cd2f28d1dc91d7a699d3452d2f to your computer and use it in GitHub Desktop.
strings.Join vs fmt.Sprintf vs string concat (+)
package join
import (
"fmt"
"strings"
"testing"
)
var (
testData = []string{"a", "b", "c", "d", "e"}
)
func BenchmarkJoin(b *testing.B) {
for i := 0; i < b.N; i++ {
s := strings.Join(testData, ":")
_ = s
}
}
func BenchmarkSprintf(b *testing.B) {
for i := 0; i < b.N; i++ {
s := fmt.Sprintf("%s:%s:%s:%s:%s", testData[0], testData[1], testData[2], testData[3], testData[4])
_ = s
}
}
func BenchmarkConcat(b *testing.B) {
for i := 0; i < b.N; i++ {
s := testData[0] + ":" + testData[1] + ":" + testData[2] + ":" + testData[3] + ":" + testData[4]
_ = s
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment