]> Cypherpunks repositories - gostls13.git/commit
unicode/utf8: removed uses of ranging over string
authorMarcel van Lohuizen <mpvl@golang.org>
Thu, 5 Nov 2015 16:52:53 +0000 (17:52 +0100)
committerMarcel van Lohuizen <mpvl@golang.org>
Mon, 16 Nov 2015 11:29:13 +0000 (11:29 +0000)
commit9b299c1efd902842b788d7dc103512b6b2568ea9
tree17b3d2e273385f06f0b866e931ef9ac88e8e8e97
parent25a28da0807f3fa85588fb219f6fa40314bde675
unicode/utf8: removed uses of ranging over string

Ranging over string is much slower than using DecodeRuneInString.
See golang.org/issue/13162.

Replacing ranging over a string with the implementation of the Bytes
counterpart results in the following performance improvements:

RuneCountInStringTenASCIIChars-8     43.0ns ± 1%  16.4ns ± 2%  -61.80%  (p=0.000 n=7+8)
RuneCountInStringTenJapaneseChars-8   161ns ± 2%   154ns ± 2%   -4.58%  (p=0.000 n=8+8)
ValidStringTenASCIIChars-8           52.2ns ± 1%  13.2ns ± 1%  -74.62%  (p=0.001 n=7+7)
ValidStringTenJapaneseChars-8         173ns ± 2%   153ns ± 2%  -11.78%  (p=0.000 n=7+8)

Update golang/go#13162

Change-Id: Ifc40a6a94bb3317f1f2d929d310bd2694645e9f6
Reviewed-on: https://go-review.googlesource.com/16695
Reviewed-by: Russ Cox <rsc@golang.org>
src/unicode/utf8/utf8.go