• Martin Möhrmann's avatar
    cmd/compile: optimize len([]rune(string)) · b9a59d9f
    Martin Möhrmann authored
    Adds a new runtime function to count runes in a string.
    Modifies the compiler to detect the pattern len([]rune(string))
    and replaces it with the new rune counting runtime function.
    
    RuneCount/lenruneslice/ASCII                  27.8ns ± 2%  14.5ns ± 3%  -47.70%  (p=0.000 n=10+10)
    RuneCount/lenruneslice/Japanese                126ns ± 2%    60ns ± 2%  -52.03%  (p=0.000 n=10+10)
    RuneCount/lenruneslice/MixedLength             104ns ± 2%    50ns ± 1%  -51.71%  (p=0.000 n=10+9)
    
    Fixes #24923
    
    Change-Id: Ie9c7e7391a4e2cca675c5cdcc1e5ce7d523948b9
    Reviewed-on: https://go-review.googlesource.com/108985
    Run-TryBot: Martin Möhrmann <moehrmann@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    b9a59d9f
Name
Last commit
Last update
..
example_test.go Loading commit data...
utf8.go Loading commit data...
utf8_test.go Loading commit data...