0
0
Commit Graph

10 Commits

Author SHA1 Message Date
Marty Schoch
5b9e11ee5f add more collector benchmarks 2017-04-18 17:24:50 -04:00
Marty Schoch
952572718e switch collector store impl from slice to heap
Additional testing has shown that the heap collector performs
significantly better when larger numbers of hits are requested.

The heap is also faster (though very close) when fewer (10) hits
are requested.

Here are the numbers from my laptop:

slice:

go test -run=xxx -bench=. -benchmem
BenchmarkTop10of10000Scores-4        	    5000	    396943 ns/op	    2472 B/op	      26 allocs/op
BenchmarkTop100of10000Scores-4       	    2000	    630894 ns/op	   18848 B/op	     116 allocs/op
BenchmarkTop1000of10000Scores-4      	     100	  14996445 ns/op	  176552 B/op	    1016 allocs/op
BenchmarkTop10000of100000Scores-4    	       1	1878796320 ns/op	 1857768 B/op	   19023 allocs/op
BenchmarkTop10of100000Scores-4       	     500	   3858309 ns/op	    2480 B/op	      26 allocs/op
BenchmarkTop100of100000Scores-4      	     300	   4270086 ns/op	   19000 B/op	     116 allocs/op
BenchmarkTop1000of100000Scores-4     	      50	  30163705 ns/op	  178024 B/op	    1016 allocs/op
BenchmarkTop10000of1000000Scores-4   	       1	3429557237 ns/op	 1882008 B/op	   19023 allocs/op
PASS
ok  	github.com/blevesearch/bleve/search/collector	16.316s

heap:

go test -run=xxx -bench=. -benchmem
BenchmarkTop10of10000Scores-4        	    5000	    341064 ns/op	    2552 B/op	      27 allocs/op
BenchmarkTop100of10000Scores-4       	    3000	    501922 ns/op	   19744 B/op	     117 allocs/op
BenchmarkTop1000of10000Scores-4      	    1000	   1759088 ns/op	  184744 B/op	    1017 allocs/op
BenchmarkTop10000of100000Scores-4    	      50	  25954696 ns/op	 1939608 B/op	   19024 allocs/op
BenchmarkTop10of100000Scores-4       	     500	   3814933 ns/op	    2560 B/op	      27 allocs/op
BenchmarkTop100of100000Scores-4      	     300	   4009369 ns/op	   19896 B/op	     117 allocs/op
BenchmarkTop1000of100000Scores-4     	     200	   6397276 ns/op	  186184 B/op	    1017 allocs/op
BenchmarkTop10000of1000000Scores-4   	      20	  81815315 ns/op	 1963912 B/op	   19024 allocs/op
PASS
ok  	github.com/blevesearch/bleve/search/collector	14.980s
2017-03-24 09:38:06 -07:00
Steve Yen
088953fbb6 more collector benchmarks with larger sizes 2017-03-16 13:46:28 -07:00
Marty Schoch
bc7d8e3b35 fix perf regression, unnecessarily loading backindex 2017-03-04 15:23:16 -05:00
Marty Schoch
0eba2a3f0c reduce garbage created while processing facets
previously we parsed/returned large sections of the documents
back index row in order to compute facet information.  this
would require parsing the protobuf of the entire back index row.
unfortunately this creates considerable garbage.

this new version introduces a visitor/callback approach to
working with data inside the back index row.  the benefit
of this approach is that we can let the higher-level code
see values, prior to any copies of data being made or
intermediate garbage being created.  implementations of
the callback must copy any value which they would like to
retain beyond the callback.

NOTE: this approach is duplicates code from the
automatically generated protobuf code

NOTE: this approach assumes that the "field" field be serialized
before the "terms" field.  This is guaranteed by our currently
generated protobuf encoder, and is recommended by the protobuf
spec.  But, decoders SHOULD support them occuring in any order,
which we do not.
2017-03-02 17:00:46 -05:00
Marty Schoch
dfc78ca725 simplify, per gofmt -s recommendation 2016-10-02 12:14:53 -04:00
Marty Schoch
2f48d7fb02 fix misspellings 2016-10-02 12:11:15 -04:00
Marty Schoch
3a276153a3 actually rename packages to singular, not just directory name 2016-10-02 10:29:39 -04:00
Marty Schoch
2332455bd2 nicer formatting of license header 2016-10-02 10:13:14 -04:00
Marty Schoch
6bf9dd59ab BREAKING CHANGE - additional package renaming
i recently learned that package names should also prefer the
singular form, not the plural form
2016-10-01 17:20:59 -04:00