Closed
Description
What version of Go are you using (go version
)?
go1.10.1
Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env
)?
darwin/amd64
What did you do?
I've benchmarked len([]rune(string))
and utf8.RuneCountInString(string)
and I saw that the latter performs better.
Here's the benchmark code.
Benchmark Results:
BenchmarkRunCountInString16ascii-8 100000000 11.9 ns/op 0 B/op 0 allocs/op
BenchmarkRunCountInString16multi-8 20000000 63.5 ns/op 0 B/op 0 allocs/op
BenchmarkRunCountInString32ascii-8 100000000 18.2 ns/op 0 B/op 0 allocs/op
BenchmarkRunCountInString32multi-8 10000000 120 ns/op 0 B/op 0 allocs/op
BenchmarkCastToRuneArray16ascii-8 50000000 26.2 ns/op 0 B/op 0 allocs/op
BenchmarkCastToRuneArray16multi-8 10000000 171 ns/op 0 B/op 0 allocs/op
BenchmarkCastToRuneArray32ascii-8 30000000 46.1 ns/op 0 B/op 0 allocs/op
BenchmarkCastToRuneArray32multi-8 5000000 322 ns/op
What did you expect to see?
Actually, I wasn't expecting len([]rune(string))
to be faster compared to utf8.RuneCountInString
, then again I wanted to open this issue. I noticed that there are a lot people are using this pattern.