• Martin Möhrmann's avatar
    sort: simplify rotate and reduce calls to it · 76cc881e
    Martin Möhrmann authored
    Move the checks for empty rotate changes
    from the beginning of rotate to the callers.
    
    Remove additional variable p used instead of existing m with same value.
    
    Remove special casing of equal ranges (i==j) to exit early as no
    work is saved vs checking (i!=j) and  making a single
    swapRange call if this is false.
    
    benchmark                   old ns/op      new ns/op      delta
    BenchmarkStableString1K     417195         425218         +1.92%
    BenchmarkStableInt1K        126661         124498         -1.71%
    BenchmarkStableInt64K       10365014       10417438       +0.51%
    BenchmarkStable1e2          132151         130648         -1.14%
    BenchmarkStable1e4          42027428       40812649       -2.89%
    BenchmarkStable1e6          8524772364     8430192391     -1.11%
    
    Change-Id: Ia7642e9d31408496970c700f5843d53cc3ebe817
    Reviewed-on: https://go-review.googlesource.com/2100Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    76cc881e
sort.go 13.2 KB