Skip to content
Snippets Groups Projects
  • Emma Haruka Iwao's avatar
    fd999fda
    strings: intrinsify and optimize Compare · fd999fda
    Emma Haruka Iwao authored
    slices.SortFunc requires a three-way comparison and we need an
    efficient strings.Compare to perform three-way string comparisons.
    This new implementation adds bytealg.CompareString as a wrapper of
    runtime_cmpstring and changes Compare to use bytealg.CompareString.
    
    The new implementation of Compare with runtime_cmpstring is about
    28% faster than the previous one.
    
    Fixes #61725
    
                               │ /tmp/gobench-sort-cmp.txt │    /tmp/gobench-sort-strings.txt    │
                               │          sec/op           │   sec/op     vs base                │
    SortFuncStruct/Size16-48                   918.8n ± 1%   726.6n ± 0%  -20.92% (p=0.000 n=10)
    SortFuncStruct/Size32-48                   2.666µ ± 1%   2.003µ ± 1%  -24.85% (p=0.000 n=10)
    SortFuncStruct/Size64-48                   1.934µ ± 1%   1.331µ ± 1%  -31.22% (p=0.000 n=10)
    SortFuncStruct/Size128-48                  3.560µ ± 1%   2.423µ ± 0%  -31.94% (p=0.000 n=10)
    SortFuncStruct/Size512-48                 13.019µ ± 0%   9.071µ ± 0%  -30.33% (p=0.000 n=10)
    SortFuncStruct/Size1024-48                 25.61µ ± 0%   17.75µ ± 0%  -30.70% (p=0.000 n=10)
    geomean                                    4.217µ        3.018µ       -28.44%
    
    Change-Id: I2513b6f8c1b9b273ef2d23f0a86f691e2d097eb6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/532195
    
    
    Reviewed-by: default avatarKeith Randall <khr@golang.org>
    Reviewed-by: default avatarIan Lance Taylor <iant@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: default avatarqiu laidongfeng2 <2645477756@qq.com>
    Reviewed-by: default avatarKeith Randall <khr@google.com>
    fd999fda
    History
    strings: intrinsify and optimize Compare
    Emma Haruka Iwao authored
    slices.SortFunc requires a three-way comparison and we need an
    efficient strings.Compare to perform three-way string comparisons.
    This new implementation adds bytealg.CompareString as a wrapper of
    runtime_cmpstring and changes Compare to use bytealg.CompareString.
    
    The new implementation of Compare with runtime_cmpstring is about
    28% faster than the previous one.
    
    Fixes #61725
    
                               │ /tmp/gobench-sort-cmp.txt │    /tmp/gobench-sort-strings.txt    │
                               │          sec/op           │   sec/op     vs base                │
    SortFuncStruct/Size16-48                   918.8n ± 1%   726.6n ± 0%  -20.92% (p=0.000 n=10)
    SortFuncStruct/Size32-48                   2.666µ ± 1%   2.003µ ± 1%  -24.85% (p=0.000 n=10)
    SortFuncStruct/Size64-48                   1.934µ ± 1%   1.331µ ± 1%  -31.22% (p=0.000 n=10)
    SortFuncStruct/Size128-48                  3.560µ ± 1%   2.423µ ± 0%  -31.94% (p=0.000 n=10)
    SortFuncStruct/Size512-48                 13.019µ ± 0%   9.071µ ± 0%  -30.33% (p=0.000 n=10)
    SortFuncStruct/Size1024-48                 25.61µ ± 0%   17.75µ ± 0%  -30.70% (p=0.000 n=10)
    geomean                                    4.217µ        3.018µ       -28.44%
    
    Change-Id: I2513b6f8c1b9b273ef2d23f0a86f691e2d097eb6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/532195
    
    
    Reviewed-by: default avatarKeith Randall <khr@golang.org>
    Reviewed-by: default avatarIan Lance Taylor <iant@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: default avatarqiu laidongfeng2 <2645477756@qq.com>
    Reviewed-by: default avatarKeith Randall <khr@google.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.