core/object: add benchmarks for MergeSearchResults#3932
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3932 +/- ##
=======================================
Coverage 26.81% 26.82%
=======================================
Files 677 677
Lines 44723 44723
=======================================
+ Hits 11992 11995 +3
+ Misses 31617 31614 -3
Partials 1114 1114 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
roman-khimov
left a comment
There was a problem hiding this comment.
But cases look realistic overall.
| func BenchmarkMergeSearchResults(b *testing.B) { | ||
| for _, lim := range []uint16{1, 2, 1000, 10000} { | ||
| b.Run(fmt.Sprintf("lim_%d", lim), func(b *testing.B) { | ||
| for _, setCount := range []int{4, 16} { |
There was a problem hiding this comment.
2 is a a good number for shards in our current tests. 8 is a good number of nodes.
There was a problem hiding this comment.
We better keep 4 and 16 as well, this thing should scale predictably, 10-20 shards or nodes are feasible even if we don't have them immediately (but we had 20 shards in one test, btw).
|
Can we also have a limit of 1K, but just a single real result? This looks realistic for S3 as well (most of the time it doesn't specifically limit the number of results, but then we don't have many |
7d474f4 to
aaee7fc
Compare
roman-khimov
left a comment
There was a problem hiding this comment.
OK otherwise. And the numbers suggest that it's not that bad even now, just integer handling that is clearly problematic. But other improvements can be useful too.
|
For integers https://github.com/holiman/uint256 is likely to help, |
aaee7fc to
f1e4534
Compare
``` goos: linux goarch: amd64 pkg: github.com/nspcc-dev/neofs-node/pkg/core/object cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics BenchmarkMergeSearchResults BenchmarkMergeSearchResults/lim_1 BenchmarkMergeSearchResults/lim_1/set_count_2 BenchmarkMergeSearchResults/lim_1/set_count_2/id_identical BenchmarkMergeSearchResults/lim_1/set_count_2/id_identical-16 1000000 1410 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/id_disjoint BenchmarkMergeSearchResults/lim_1/set_count_2/id_disjoint-16 787754 1564 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/id_intersecting BenchmarkMergeSearchResults/lim_1/set_count_2/id_intersecting-16 770305 1478 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/size_numeric BenchmarkMergeSearchResults/lim_1/set_count_2/size_numeric-16 901287 2562 ns/op 200 B/op 7 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/common_prefix_dense BenchmarkMergeSearchResults/lim_1/set_count_2/common_prefix_dense-16 1233517 956.6 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/common_prefix_single_result BenchmarkMergeSearchResults/lim_1/set_count_2/common_prefix_single_result-16 851367 1398 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1/set_count_2/filepath_timestamp_dense-16 802920 1485 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_2/integer_attribute_dense BenchmarkMergeSearchResults/lim_1/set_count_2/integer_attribute_dense-16 674882 1790 ns/op 120 B/op 3 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4 BenchmarkMergeSearchResults/lim_1/set_count_4/id_identical BenchmarkMergeSearchResults/lim_1/set_count_4/id_identical-16 1000000 1393 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/id_disjoint BenchmarkMergeSearchResults/lim_1/set_count_4/id_disjoint-16 1000000 1460 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/id_intersecting BenchmarkMergeSearchResults/lim_1/set_count_4/id_intersecting-16 1000000 1486 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/size_numeric BenchmarkMergeSearchResults/lim_1/set_count_4/size_numeric-16 380428 3175 ns/op 272 B/op 10 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/common_prefix_dense BenchmarkMergeSearchResults/lim_1/set_count_4/common_prefix_dense-16 1312003 892.0 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/common_prefix_single_result BenchmarkMergeSearchResults/lim_1/set_count_4/common_prefix_single_result-16 969753 1317 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1/set_count_4/filepath_timestamp_dense-16 1035876 1119 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_4/integer_attribute_dense BenchmarkMergeSearchResults/lim_1/set_count_4/integer_attribute_dense-16 794206 1521 ns/op 120 B/op 3 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8 BenchmarkMergeSearchResults/lim_1/set_count_8/id_identical BenchmarkMergeSearchResults/lim_1/set_count_8/id_identical-16 744229 1560 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/id_disjoint BenchmarkMergeSearchResults/lim_1/set_count_8/id_disjoint-16 927214 1268 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/id_intersecting BenchmarkMergeSearchResults/lim_1/set_count_8/id_intersecting-16 1000000 1196 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/size_numeric BenchmarkMergeSearchResults/lim_1/set_count_8/size_numeric-16 346908 3432 ns/op 400 B/op 14 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/common_prefix_dense BenchmarkMergeSearchResults/lim_1/set_count_8/common_prefix_dense-16 1118973 1011 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/common_prefix_single_result BenchmarkMergeSearchResults/lim_1/set_count_8/common_prefix_single_result-16 887355 1320 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1/set_count_8/filepath_timestamp_dense-16 1000000 1086 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_8/integer_attribute_dense BenchmarkMergeSearchResults/lim_1/set_count_8/integer_attribute_dense-16 759685 1580 ns/op 120 B/op 3 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16 BenchmarkMergeSearchResults/lim_1/set_count_16/id_identical BenchmarkMergeSearchResults/lim_1/set_count_16/id_identical-16 949563 1537 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/id_disjoint BenchmarkMergeSearchResults/lim_1/set_count_16/id_disjoint-16 1053872 1133 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/id_intersecting BenchmarkMergeSearchResults/lim_1/set_count_16/id_intersecting-16 1042620 1151 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/size_numeric BenchmarkMergeSearchResults/lim_1/set_count_16/size_numeric-16 266541 4416 ns/op 656 B/op 22 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/common_prefix_dense BenchmarkMergeSearchResults/lim_1/set_count_16/common_prefix_dense-16 1133349 1008 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/common_prefix_single_result BenchmarkMergeSearchResults/lim_1/set_count_16/common_prefix_single_result-16 829562 1395 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1/set_count_16/filepath_timestamp_dense-16 985033 1181 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1/set_count_16/integer_attribute_dense BenchmarkMergeSearchResults/lim_1/set_count_16/integer_attribute_dense-16 739009 1648 ns/op 120 B/op 3 allocs/op BenchmarkMergeSearchResults/lim_2 BenchmarkMergeSearchResults/lim_2/set_count_2 BenchmarkMergeSearchResults/lim_2/set_count_2/id_identical BenchmarkMergeSearchResults/lim_2/set_count_2/id_identical-16 836520 1404 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/id_disjoint BenchmarkMergeSearchResults/lim_2/set_count_2/id_disjoint-16 18962 64180 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/id_intersecting BenchmarkMergeSearchResults/lim_2/set_count_2/id_intersecting-16 18808 64479 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/size_numeric BenchmarkMergeSearchResults/lim_2/set_count_2/size_numeric-16 20179 58533 ns/op 280 B/op 8 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/common_prefix_dense BenchmarkMergeSearchResults/lim_2/set_count_2/common_prefix_dense-16 868041 1361 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/common_prefix_single_result BenchmarkMergeSearchResults/lim_2/set_count_2/common_prefix_single_result-16 802594 1506 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_2/set_count_2/filepath_timestamp_dense-16 1000000 1565 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_2/integer_attribute_dense BenchmarkMergeSearchResults/lim_2/set_count_2/integer_attribute_dense-16 509468 2458 ns/op 208 B/op 5 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4 BenchmarkMergeSearchResults/lim_2/set_count_4/id_identical BenchmarkMergeSearchResults/lim_2/set_count_4/id_identical-16 531987 2002 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/id_disjoint BenchmarkMergeSearchResults/lim_2/set_count_4/id_disjoint-16 6474 182328 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/id_intersecting BenchmarkMergeSearchResults/lim_2/set_count_4/id_intersecting-16 6058 194420 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/size_numeric BenchmarkMergeSearchResults/lim_2/set_count_4/size_numeric-16 6559 183058 ns/op 416 B/op 13 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/common_prefix_dense BenchmarkMergeSearchResults/lim_2/set_count_4/common_prefix_dense-16 9938 119992 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/common_prefix_single_result BenchmarkMergeSearchResults/lim_2/set_count_4/common_prefix_single_result-16 922062 1354 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_2/set_count_4/filepath_timestamp_dense-16 861144 1379 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_4/integer_attribute_dense BenchmarkMergeSearchResults/lim_2/set_count_4/integer_attribute_dense-16 516873 2109 ns/op 208 B/op 5 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8 BenchmarkMergeSearchResults/lim_2/set_count_8/id_identical BenchmarkMergeSearchResults/lim_2/set_count_8/id_identical-16 651402 1785 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/id_disjoint BenchmarkMergeSearchResults/lim_2/set_count_8/id_disjoint-16 2347 497598 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/id_intersecting BenchmarkMergeSearchResults/lim_2/set_count_8/id_intersecting-16 2376 494005 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/size_numeric BenchmarkMergeSearchResults/lim_2/set_count_8/size_numeric-16 2478 473502 ns/op 672 B/op 21 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/common_prefix_dense BenchmarkMergeSearchResults/lim_2/set_count_8/common_prefix_dense-16 10000 127255 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/common_prefix_single_result BenchmarkMergeSearchResults/lim_2/set_count_8/common_prefix_single_result-16 673596 1494 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_2/set_count_8/filepath_timestamp_dense-16 832546 1453 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_8/integer_attribute_dense BenchmarkMergeSearchResults/lim_2/set_count_8/integer_attribute_dense-16 472557 2254 ns/op 208 B/op 5 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16 BenchmarkMergeSearchResults/lim_2/set_count_16/id_identical BenchmarkMergeSearchResults/lim_2/set_count_16/id_identical-16 562095 2061 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/id_disjoint BenchmarkMergeSearchResults/lim_2/set_count_16/id_disjoint-16 952 1085589 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/id_intersecting BenchmarkMergeSearchResults/lim_2/set_count_16/id_intersecting-16 1122 1061779 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/size_numeric BenchmarkMergeSearchResults/lim_2/set_count_16/size_numeric-16 1123 1065970 ns/op 1184 B/op 37 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/common_prefix_dense BenchmarkMergeSearchResults/lim_2/set_count_16/common_prefix_dense-16 9967 119192 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/common_prefix_single_result BenchmarkMergeSearchResults/lim_2/set_count_16/common_prefix_single_result-16 829124 1496 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_2/set_count_16/filepath_timestamp_dense-16 729151 1605 ns/op 136 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_2/set_count_16/integer_attribute_dense BenchmarkMergeSearchResults/lim_2/set_count_16/integer_attribute_dense-16 437875 2444 ns/op 208 B/op 5 allocs/op BenchmarkMergeSearchResults/lim_1000 BenchmarkMergeSearchResults/lim_1000/set_count_2 BenchmarkMergeSearchResults/lim_1000/set_count_2/id_identical BenchmarkMergeSearchResults/lim_1000/set_count_2/id_identical-16 17630 69803 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/id_disjoint BenchmarkMergeSearchResults/lim_1000/set_count_2/id_disjoint-16 18 64270422 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/id_intersecting BenchmarkMergeSearchResults/lim_1000/set_count_2/id_intersecting-16 20 58285883 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/size_numeric BenchmarkMergeSearchResults/lim_1000/set_count_2/size_numeric-16 2730 472835 ns/op 89449 B/op 1006 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/common_prefix_dense BenchmarkMergeSearchResults/lim_1000/set_count_2/common_prefix_dense-16 22330 56341 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/common_prefix_single_result BenchmarkMergeSearchResults/lim_1000/set_count_2/common_prefix_single_result-16 865824 1317 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1000/set_count_2/filepath_timestamp_dense-16 13861 86097 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_2/integer_attribute_dense BenchmarkMergeSearchResults/lim_1000/set_count_2/integer_attribute_dense-16 3542 352973 ns/op 89376 B/op 1003 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4 BenchmarkMergeSearchResults/lim_1000/set_count_4/id_identical BenchmarkMergeSearchResults/lim_1000/set_count_4/id_identical-16 9464 109007 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/id_disjoint BenchmarkMergeSearchResults/lim_1000/set_count_4/id_disjoint-16 6 183065412 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/id_intersecting BenchmarkMergeSearchResults/lim_1000/set_count_4/id_intersecting-16 6 191643990 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/size_numeric BenchmarkMergeSearchResults/lim_1000/set_count_4/size_numeric-16 21 53876843 ns/op 205160 B/op 5210 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/common_prefix_dense BenchmarkMergeSearchResults/lim_1000/set_count_4/common_prefix_dense-16 3589 362506 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/common_prefix_single_result BenchmarkMergeSearchResults/lim_1000/set_count_4/common_prefix_single_result-16 1000000 1356 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1000/set_count_4/filepath_timestamp_dense-16 9034 132580 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_4/integer_attribute_dense BenchmarkMergeSearchResults/lim_1000/set_count_4/integer_attribute_dense-16 3356 399321 ns/op 89376 B/op 1003 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8 BenchmarkMergeSearchResults/lim_1000/set_count_8/id_identical BenchmarkMergeSearchResults/lim_1000/set_count_8/id_identical-16 5533 190196 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/id_disjoint BenchmarkMergeSearchResults/lim_1000/set_count_8/id_disjoint-16 3 487491294 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/id_intersecting BenchmarkMergeSearchResults/lim_1000/set_count_8/id_intersecting-16 2 537942499 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/size_numeric BenchmarkMergeSearchResults/lim_1000/set_count_8/size_numeric-16 8 127800981 ns/op 343090 B/op 9521 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/common_prefix_dense BenchmarkMergeSearchResults/lim_1000/set_count_8/common_prefix_dense-16 3655 415401 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/common_prefix_single_result BenchmarkMergeSearchResults/lim_1000/set_count_8/common_prefix_single_result-16 1000000 1438 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1000/set_count_8/filepath_timestamp_dense-16 4933 212615 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_8/integer_attribute_dense BenchmarkMergeSearchResults/lim_1000/set_count_8/integer_attribute_dense-16 2496 494815 ns/op 89376 B/op 1003 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16 BenchmarkMergeSearchResults/lim_1000/set_count_16/id_identical BenchmarkMergeSearchResults/lim_1000/set_count_16/id_identical-16 3411 357944 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/id_disjoint BenchmarkMergeSearchResults/lim_1000/set_count_16/id_disjoint-16 1 1087502977 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/id_intersecting BenchmarkMergeSearchResults/lim_1000/set_count_16/id_intersecting-16 1 1081475137 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/size_numeric BenchmarkMergeSearchResults/lim_1000/set_count_16/size_numeric-16 5 201525858 ns/op 597105 B/op 17459 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/common_prefix_dense BenchmarkMergeSearchResults/lim_1000/set_count_16/common_prefix_dense-16 2611 510728 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/common_prefix_single_result BenchmarkMergeSearchResults/lim_1000/set_count_16/common_prefix_single_result-16 781710 1503 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_1000/set_count_16/filepath_timestamp_dense-16 3241 360179 ns/op 57368 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_1000/set_count_16/integer_attribute_dense BenchmarkMergeSearchResults/lim_1000/set_count_16/integer_attribute_dense-16 1988 621284 ns/op 89376 B/op 1003 allocs/op BenchmarkMergeSearchResults/lim_10000 BenchmarkMergeSearchResults/lim_10000/set_count_2 BenchmarkMergeSearchResults/lim_10000/set_count_2/id_identical BenchmarkMergeSearchResults/lim_10000/set_count_2/id_identical-16 1375 843447 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/id_disjoint BenchmarkMergeSearchResults/lim_10000/set_count_2/id_disjoint-16 2 593716683 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/id_intersecting BenchmarkMergeSearchResults/lim_10000/set_count_2/id_intersecting-16 2 560890348 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/size_numeric BenchmarkMergeSearchResults/lim_10000/set_count_2/size_numeric-16 376 3343801 ns/op 885359 B/op 10006 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/common_prefix_dense BenchmarkMergeSearchResults/lim_10000/set_count_2/common_prefix_dense-16 1843 550350 ns/op 565275 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/common_prefix_single_result BenchmarkMergeSearchResults/lim_10000/set_count_2/common_prefix_single_result-16 1000000 1299 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_10000/set_count_2/filepath_timestamp_dense-16 1112 998212 ns/op 565273 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_2/integer_attribute_dense BenchmarkMergeSearchResults/lim_10000/set_count_2/integer_attribute_dense-16 304 3851772 ns/op 886571 B/op 10044 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4 BenchmarkMergeSearchResults/lim_10000/set_count_4/id_identical BenchmarkMergeSearchResults/lim_10000/set_count_4/id_identical-16 909 1302018 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/id_disjoint BenchmarkMergeSearchResults/lim_10000/set_count_4/id_disjoint-16 1 1822682866 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/id_intersecting BenchmarkMergeSearchResults/lim_10000/set_count_4/id_intersecting-16 1 1827583757 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/size_numeric BenchmarkMergeSearchResults/lim_10000/set_count_4/size_numeric-16 8 139558138 ns/op 1143500 B/op 18883 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/common_prefix_dense BenchmarkMergeSearchResults/lim_10000/set_count_4/common_prefix_dense-16 741 1401006 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/common_prefix_single_result BenchmarkMergeSearchResults/lim_10000/set_count_4/common_prefix_single_result-16 990964 1388 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_10000/set_count_4/filepath_timestamp_dense-16 726 1524613 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_4/integer_attribute_dense BenchmarkMergeSearchResults/lim_10000/set_count_4/integer_attribute_dense-16 283 4157128 ns/op 887211 B/op 10064 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8 BenchmarkMergeSearchResults/lim_10000/set_count_8/id_identical BenchmarkMergeSearchResults/lim_10000/set_count_8/id_identical-16 574 1984919 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/id_disjoint BenchmarkMergeSearchResults/lim_10000/set_count_8/id_disjoint-16 1 4756347663 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/id_intersecting BenchmarkMergeSearchResults/lim_10000/set_count_8/id_intersecting-16 1 4326771470 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/size_numeric BenchmarkMergeSearchResults/lim_10000/set_count_8/size_numeric-16 3 495266613 ns/op 2140728 B/op 51307 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/common_prefix_dense BenchmarkMergeSearchResults/lim_10000/set_count_8/common_prefix_dense-16 613 1899362 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/common_prefix_single_result BenchmarkMergeSearchResults/lim_10000/set_count_8/common_prefix_single_result-16 1000000 1436 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_10000/set_count_8/filepath_timestamp_dense-16 472 2526938 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_8/integer_attribute_dense BenchmarkMergeSearchResults/lim_10000/set_count_8/integer_attribute_dense-16 246 4748538 ns/op 887211 B/op 10064 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16 BenchmarkMergeSearchResults/lim_10000/set_count_16/id_identical BenchmarkMergeSearchResults/lim_10000/set_count_16/id_identical-16 315 3723042 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/id_disjoint BenchmarkMergeSearchResults/lim_10000/set_count_16/id_disjoint-16 1 10677561676 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/id_intersecting BenchmarkMergeSearchResults/lim_10000/set_count_16/id_intersecting-16 1 10469975000 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/size_numeric BenchmarkMergeSearchResults/lim_10000/set_count_16/size_numeric-16 1 1234516218 ns/op 5827832 B/op 169913 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/common_prefix_dense BenchmarkMergeSearchResults/lim_10000/set_count_16/common_prefix_dense-16 444 2798186 ns/op 565272 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/common_prefix_single_result BenchmarkMergeSearchResults/lim_10000/set_count_16/common_prefix_single_result-16 753970 1559 ns/op 88 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/filepath_timestamp_dense BenchmarkMergeSearchResults/lim_10000/set_count_16/filepath_timestamp_dense-16 310 3928992 ns/op 565273 B/op 2 allocs/op BenchmarkMergeSearchResults/lim_10000/set_count_16/integer_attribute_dense BenchmarkMergeSearchResults/lim_10000/set_count_16/integer_attribute_dense-16 181 6398928 ns/op 887213 B/op 10064 allocs/op PASS ``` Refs #3133. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
Refs #3133.
As far as I can see, benchmarks show that the main cost comes from numeric attribute comparison
cmpIntand from large merges with low overlap between result sets.