]> Cypherpunks.ru repositories - gostls13.git/commit
sort: optimize symMerge performance for blocks with one element
authorMartin Möhrmann <martisch@uos.de>
Thu, 1 Jan 2015 23:18:10 +0000 (00:18 +0100)
committerRobert Griesemer <gri@golang.org>
Tue, 6 Jan 2015 23:30:46 +0000 (23:30 +0000)
commite5864cd9397679353e44ab1de82fdf6d75a359c7
tree11560a498af0fb4fbc6d910626a9bed4d3947141
parentbc2601a1df6efc089cbb2acd51bd181aeaba12c6
sort: optimize symMerge performance for blocks with one element

Use direct binary insertion instead of recursive calls to symMerge
when one of the blocks has only one element.

benchmark                   old ns/op      new ns/op      delta
BenchmarkStableString1K     421999         397629         -5.77%
BenchmarkStableInt1K        123422         120592         -2.29%
BenchmarkStableInt64K       9629094        9620200        -0.09%
BenchmarkStable1e2          123089         120209         -2.34%
BenchmarkStable1e4          39505228       36870029       -6.67%
BenchmarkStable1e6          8196612367     7630840157     -6.90%

Change-Id: I49905a909e8595cfa05920ccf9aa00a8f3036110
Reviewed-on: https://go-review.googlesource.com/2219
Reviewed-by: Robert Griesemer <gri@golang.org>
src/sort/sort.go