golangでbyteをstringに変換する処理はたびたび発生するのですが、 手抜きで fmt.Sprintf("%s", byte) などとやっちゃうこともあるのでそれぞれの書き方でどれが速いのか確認してみた。 1) Sprintfを使うパターン fmt.Sprintf("%s", data) 2) string() を使うパターン string(data) 3) unsafe を使うパターン *(*string)(unsafe.Pointer(&data)) 唐突にテストコード package main import ( "fmt" "unsafe" "testing" ) var data = []byte("はろーhogehogeです。") func Benchmark_Sprintf(b *testing.B){ b.ResetTimer() for i := 0; i < b