標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

strings.EqualFold はどの程度の速度か

strings.EqualFold について言及がなかったので、測ってみました。

追加行:

func isDevNull4(name string) bool {
    return strings.EqualFold(name,"nul")
}
func BenchmarkS4(b *testing.B) {
    test(b, isDevNull4)
}

結果:

$ go test -bench .
goos: windows
goarch: amd64
BenchmarkS1-4           50000000                29.5 ns/op
BenchmarkS2-4           50000000                29.1 ns/op
BenchmarkS3-4             200000              9844 ns/op
BenchmarkS4-4           20000000               101 ns/op

自分的には「なんか、まぁまぁ速かったけど、速すぎるので、何かミスってる可能性大」と思っていたんですが、「そんなもんだと思います」とのコメントをいただきました。

まぁ、考えてみれば、S3 で使われている strings.ToLower(name) == "nul" は文字列の領域確保とインスタンス作成が入っているため、この結果は当然かもしれません。

mattn さん、どうもありがとうございました。