0
0
bleve/search
Marty Schoch c9310b906d introduced new collector store impl based on slice
counter-intuitively the list impl was faster than the heap
the theory was the heap did more comparisons and swapping
so even though it benefited from no interface and some cache
locality, it was still slower

the idea was to just use a raw slice kept in order
this avoids the need for interface, but can take same comparison
approach as the list

it seems to work out:

 go test -run=xxx -bench=. -benchmem -cpuprofile=cpu.out
BenchmarkTop10of100000Scores-4     	    5000	    299959 ns/op	    2600 B/op	      36 allocs/op
BenchmarkTop100of100000Scores-4    	    2000	    601104 ns/op	   20720 B/op	     216 allocs/op
BenchmarkTop10of1000000Scores-4    	     500	   3450196 ns/op	    2616 B/op	      36 allocs/op
BenchmarkTop100of1000000Scores-4   	     500	   3874276 ns/op	   20856 B/op	     216 allocs/op
PASS
ok  	github.com/blevesearch/bleve/search/collectors	7.440s
2016-08-26 11:52:49 -04:00
..
collectors introduced new collector store impl based on slice 2016-08-26 11:52:49 -04:00
facets Make facets much faster 2016-07-17 15:31:35 -07:00
highlight more gofmt simplifications 2016-04-03 00:03:33 -04:00
scorers improved implementation to address perf regressions 2016-08-25 15:47:07 -04:00
searchers switch sort impl to use interface 2016-08-24 19:02:22 -04:00
collector.go major refactor of index/search API 2016-07-31 13:46:18 -04:00
explanation.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00
facets_builder_test.go gofmt simplifications 2016-04-02 21:54:33 -04:00
facets_builder.go adds support for more complex field sorts with object (not string) 2016-08-17 14:33:51 -07:00
levenshtein_test.go moved levenshtein code outside of fuzzy searcher 2014-12-12 13:23:06 -05:00
levenshtein.go Fix some typos 2016-01-15 05:46:27 +07:00
pool_test.go switch sort impl to use interface 2016-08-24 19:02:22 -04:00
pool.go improved implementation to address perf regressions 2016-08-25 15:47:07 -04:00
search.go improved implementation to address perf regressions 2016-08-25 15:47:07 -04:00
sort.go cache values to avoid dynamic dispatch inside hot loop 2016-08-25 16:24:26 -04:00
util_test.go add newline between license and package 2014-09-02 10:54:50 -04:00
util.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00