uschindler commented on pull request #308:
URL: https://github.com/apache/lucene/pull/308#issuecomment-922461953
Performance comparison:
```
TaskQPS baseline StdDevQPS my_modified_version
StdDev Pct diff p-value
HighTermMonthSort 80.36 (11.4%) 78.81 (7.9%)
-1.9% ( -19% - 19%) 0.533
HighTermTitleBDVSort 12.47 (20.5%) 12.23 (18.6%)
-1.9% ( -33% - 46%) 0.756
HighSloppyPhrase 14.80 (3.9%) 14.61 (3.4%)
-1.2% ( -8% - 6%) 0.287
OrHighLow 191.33 (3.1%) 189.67 (3.8%)
-0.9% ( -7% - 6%) 0.436
HighSpanNear 2.76 (2.6%) 2.74 (4.4%)
-0.6% ( -7% - 6%) 0.575
Fuzzy2 57.57 (1.6%) 57.21 (2.2%)
-0.6% ( -4% - 3%) 0.304
HighPhrase 39.92 (3.5%) 39.68 (2.8%)
-0.6% ( -6% - 5%) 0.546
LowSpanNear 8.42 (2.3%) 8.39 (2.8%)
-0.4% ( -5% - 4%) 0.663
Wildcard 31.79 (3.8%) 31.74 (3.9%)
-0.2% ( -7% - 7%) 0.891
IntNRQ 94.20 (3.5%) 94.05 (4.1%)
-0.2% ( -7% - 7%) 0.898
MedSpanNear 29.62 (2.3%) 29.59 (2.7%)
-0.1% ( -4% - 5%) 0.894
HighTermDayOfYearSort 56.16 (7.7%) 56.11 (7.5%)
-0.1% ( -14% - 16%) 0.969
LowSloppyPhrase 10.42 (2.7%) 10.42 (2.4%)
-0.0% ( -4% - 5%) 0.985
MedSloppyPhrase 7.32 (2.5%) 7.32 (2.3%)
0.0% ( -4% - 4%) 0.977
Prefix3 12.62 (9.1%) 12.63 (10.5%)
0.1% ( -17% - 21%) 0.987
Fuzzy1 89.28 (1.1%) 89.34 (2.0%)
0.1% ( -3% - 3%) 0.903
BrowseMonthSSDVFacets 5.04 (5.5%) 5.04 (5.2%)
0.1% ( -10% - 11%) 0.966
OrNotHighLow 571.04 (1.5%) 571.46 (2.7%)
0.1% ( -4% - 4%) 0.917
MedIntervalsOrdered 36.70 (5.6%) 36.78 (5.7%)
0.2% ( -10% - 12%) 0.905
PKLookup 203.36 (3.8%) 203.81 (3.2%)
0.2% ( -6% - 7%) 0.845
HighIntervalsOrdered 3.55 (5.3%) 3.56 (5.0%)
0.2% ( -9% - 11%) 0.891
Respell 59.27 (1.3%) 59.44 (1.7%)
0.3% ( -2% - 3%) 0.548
MedPhrase 367.55 (2.0%) 368.61 (1.7%)
0.3% ( -3% - 4%) 0.623
AndHighLow 560.26 (3.3%) 561.90 (3.8%)
0.3% ( -6% - 7%) 0.795
OrNotHighMed 971.44 (2.4%) 974.30 (3.2%)
0.3% ( -5% - 6%) 0.742
LowPhrase 41.63 (2.5%) 41.76 (2.3%)
0.3% ( -4% - 5%) 0.672
LowIntervalsOrdered 94.44 (3.1%) 94.75 (3.2%)
0.3% ( -5% - 6%) 0.744
MedTerm 1590.31 (4.9%) 1596.02 (5.0%)
0.4% ( -9% - 10%) 0.819
OrHighNotHigh 958.25 (3.5%) 964.26 (3.7%)
0.6% ( -6% - 8%) 0.581
LowTerm 1527.92 (2.5%) 1538.97 (3.0%)
0.7% ( -4% - 6%) 0.412
OrHighHigh 26.32 (3.0%) 26.55 (3.4%)
0.9% ( -5% - 7%) 0.373
OrHighNotMed 1177.62 (4.3%) 1188.50 (4.8%)
0.9% ( -7% - 10%) 0.522
OrHighNotLow 1215.18 (4.5%) 1227.52 (4.6%)
1.0% ( -7% - 10%) 0.481
OrHighMed 65.77 (4.0%) 66.50 (3.7%)
1.1% ( -6% - 9%) 0.365
AndHighMed 44.34 (4.4%) 44.84 (5.0%)
1.1% ( -7% - 11%) 0.449
OrNotHighHigh 783.60 (3.9%) 792.60 (4.6%)
1.1% ( -7% - 9%) 0.392
AndHighHigh 38.95 (4.7%) 39.44 (4.6%)
1.3% ( -7% - 11%) 0.392
BrowseDayOfYearSSDVFacets 4.68 (10.0%) 4.77 (9.7%)
1.9% ( -16% - 23%) 0.551
BrowseMonthTaxoFacets 1.20 (9.0%) 1.23 (9.7%)
2.3% ( -15% - 23%) 0.437
BrowseDayOfYearTaxoFacets 1.15 (9.7%) 1.18 (11.0%)
2.4% ( -16% - 25%) 0.461
HighTerm 2329.95 (4.5%) 2391.41 (5.3%)
2.6% ( -6% - 13%) 0.092
BrowseDateTaxoFacets 1.16 (9.7%) 1.19 (11.1%)
2.7% ( -16% - 25%) 0.421
TermDTSort 65.25 (7.7%) 68.06 (10.3%)
4.3% ( -12% - 24%) 0.132
CPU merged search profile for my_modified_version:
PROFILE SUMMARY from 1454870 events (total: 1M)
tests.profile.mode=cpu
tests.profile.count=30
tests.profile.stacksize=1
tests.profile.linenumbers=false
PERCENT CPU SAMPLES STACK
9.22% 134161
org.apache.lucene.util.packed.DirectMonotonicReader#get()
8.22% 119591
org.apache.lucene.util.packed.DirectReader$DirectPackedReader12#get()
5.35% 77845
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$17#binaryValue()
3.52% 51219
java.util.Collections$UnmodifiableCollection$1#<init>()
3.49% 50705
org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts#countAll()
2.44% 35538
org.apache.lucene.store.ByteBufferGuard#getShort()
2.37% 34551 java.nio.Buffer#scope()
2.03% 29597 java.nio.ByteBuffer#getArray()
2.02% 29320 jdk.internal.misc.Unsafe#convEndian()
1.91% 27740 java.nio.DirectByteBuffer#getShort()
1.90% 27626
org.apache.lucene.store.ByteBufferIndexInput#readBytes()
1.81% 26300 java.util.Objects#checkIndex()
1.76% 25665
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#advance()
1.60% 23302
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$VaryingBPVReader#getLongValue()
1.51% 21980
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#nextPosition()
1.51% 21925
org.apache.lucene.queries.intervals.OrderedIntervalsSource$OrderedIntervalIterator#nextInterval()
1.22% 17802 jdk.internal.misc.Unsafe#copyMemory()
1.16% 16832
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#advance()
1.14% 16544
org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts#countOneSegment()
1.11% 16206
jdk.internal.util.Preconditions#checkFromIndexSize()
1.10% 16072
org.apache.lucene.codecs.lucene90.ForUtil#expand8()
1.07% 15617 java.nio.Buffer#position()
1.05% 15245
org.apache.lucene.util.packed.DirectReader$DirectPackedReader4#get()
0.97% 14144
org.apache.lucene.queries.spans.NearSpansOrdered#stretchToOrder()
0.95% 13785 org.apache.lucene.search.ConjunctionDISI#doNext()
0.94% 13737
org.apache.lucene.queries.intervals.IntervalFilter#nextInterval()
0.94% 13647
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#skipPositions()
0.86% 12467
java.util.Collections$UnmodifiableCollection$1#hasNext()
0.82% 11951
org.apache.lucene.search.Weight$DefaultBulkScorer#scoreAll()
0.82% 11948
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$20#ordValue()
CPU merged search profile for baseline:
PROFILE SUMMARY from 1455846 events (total: 1M)
tests.profile.mode=cpu
tests.profile.count=30
tests.profile.stacksize=1
tests.profile.linenumbers=false
PERCENT CPU SAMPLES STACK
9.92% 144437
org.apache.lucene.util.packed.DirectMonotonicReader#get()
8.91% 129653
org.apache.lucene.util.packed.DirectReader$DirectPackedReader12#get()
6.42% 93437
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$17#binaryValue()
3.60% 52446
java.util.Collections$UnmodifiableCollection$1#<init>()
3.30% 48044
org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts#countAll()
2.33% 33969
org.apache.lucene.store.ByteBufferIndexInput#readBytes()
2.26% 32835 java.nio.ByteBuffer#getArray()
1.99% 28936 java.util.Objects#checkIndex()
1.96% 28474
org.apache.lucene.store.ByteBufferGuard#getShort()
1.92% 27908 java.nio.Buffer#scope()
1.87% 27199
jdk.internal.util.Preconditions#checkFromIndexSize()
1.77% 25702
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#advance()
1.71% 24943 jdk.internal.misc.Unsafe#convEndian()
1.67% 24365
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$VaryingBPVReader#getLongValue()
1.67% 24310
org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts#countOneSegment()
1.57% 22795
org.apache.lucene.queries.intervals.OrderedIntervalsSource$OrderedIntervalIterator#nextInterval()
1.51% 21924
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#nextPosition()
1.23% 17931 java.nio.Buffer#position()
1.18% 17145 jdk.internal.misc.Unsafe#copyMemory()
1.16% 16845
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#advance()
1.12% 16270
org.apache.lucene.codecs.lucene90.ForUtil#expand8()
1.10% 15971 java.nio.DirectByteBuffer#getShort()
0.99% 14447
org.apache.lucene.util.packed.DirectReader$DirectPackedReader4#get()
0.98% 14252
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#skipPositions()
0.95% 13817
org.apache.lucene.queries.intervals.IntervalFilter#nextInterval()
0.93% 13573
org.apache.lucene.queries.spans.NearSpansOrdered#stretchToOrder()
0.92% 13323 org.apache.lucene.search.ConjunctionDISI#doNext()
0.80% 11677
java.util.Collections$UnmodifiableCollection$1#hasNext()
0.78% 11422
org.apache.lucene.search.Weight$DefaultBulkScorer#scoreAll()
0.76% 11123
org.apache.lucene.queries.spans.NearSpansOrdered#nextStartPosition()
HEAP merged search profile for my_modified_version:
PROFILE SUMMARY from 78058 events (total: 27928M)
tests.profile.mode=heap
tests.profile.count=30
tests.profile.stacksize=1
tests.profile.linenumbers=false
PERCENT HEAP SAMPLES STACK
17.16% 4792M org.apache.lucene.util.FixedBitSet#<init>()
8.40% 2344M
org.apache.lucene.search.ExactPhraseMatcher$1$1#getImpacts()
7.41% 2070M
org.apache.lucene.search.ExactPhraseMatcher$1#getImpacts()
6.80% 1898M java.util.AbstractList#iterator()
5.46% 1524M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnumFrame#<init>()
3.18% 888M org.apache.lucene.util.ArrayUtil#growExact()
2.97% 830M org.apache.lucene.util.BytesRef#<init>()
2.69% 750M java.util.ArrayList#grow()
2.60% 726M
org.apache.lucene.util.fst.ByteSequenceOutputs#read()
2.56% 715M
org.apache.lucene.queryparser.charstream.FastCharStream#refill()
2.43% 677M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockDocsEnum#<init>()
1.79% 499M java.nio.DirectByteBufferR#duplicate()
1.67% 466M
org.apache.lucene.queryparser.charstream.FastCharStream#GetImage()
1.66% 463M
jdk.internal.misc.Unsafe#allocateUninitializedArray()
1.58% 440M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum#getFrame()
1.55% 433M java.util.ArrayList#iterator()
1.34% 375M org.apache.lucene.util.PriorityQueue#<init>()
1.30% 363M
org.apache.lucene.codecs.lucene90.blocktree.IntersectTermsEnumFrame#load()
1.20% 333M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsDocsEnum#<init>()
1.14% 318M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum#<init>()
1.11% 309M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader#newTermState()
1.09% 305M
org.apache.lucene.codecs.lucene90.ForUtil#<init>()
0.87% 244M java.nio.DirectByteBufferR#slice()
0.83% 230M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#<init>()
0.82% 229M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#<init>()
0.80% 223M
org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState#document()
0.73% 204M java.nio.DirectByteBufferR#asLongBuffer()
0.73% 203M
org.apache.lucene.codecs.lucene90.blocktree.IntersectTermsEnumFrame#<init>()
0.72% 201M java.util.AbstractList#listIterator()
0.68% 191M java.util.Arrays#copyOf()
HEAP merged search profile for baseline:
PROFILE SUMMARY from 78116 events (total: 27923M)
tests.profile.mode=heap
tests.profile.count=30
tests.profile.stacksize=1
tests.profile.linenumbers=false
PERCENT HEAP SAMPLES STACK
17.15% 4789M org.apache.lucene.util.FixedBitSet#<init>()
8.30% 2317M
org.apache.lucene.search.ExactPhraseMatcher$1$1#getImpacts()
7.31% 2040M
org.apache.lucene.search.ExactPhraseMatcher$1#getImpacts()
6.89% 1925M java.util.AbstractList#iterator()
5.39% 1506M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnumFrame#<init>()
3.24% 904M org.apache.lucene.util.ArrayUtil#growExact()
3.01% 840M org.apache.lucene.util.BytesRef#<init>()
2.72% 759M java.util.ArrayList#grow()
2.59% 724M
org.apache.lucene.util.fst.ByteSequenceOutputs#read()
2.50% 697M
org.apache.lucene.queryparser.charstream.FastCharStream#refill()
2.41% 673M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockDocsEnum#<init>()
1.85% 515M java.nio.DirectByteBufferR#duplicate()
1.69% 472M
jdk.internal.misc.Unsafe#allocateUninitializedArray()
1.60% 446M
org.apache.lucene.queryparser.charstream.FastCharStream#GetImage()
1.56% 434M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum#getFrame()
1.50% 419M java.util.ArrayList#iterator()
1.36% 378M org.apache.lucene.util.PriorityQueue#<init>()
1.33% 371M
org.apache.lucene.codecs.lucene90.blocktree.IntersectTermsEnumFrame#load()
1.15% 321M
org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum#<init>()
1.12% 313M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsDocsEnum#<init>()
1.07% 298M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader#newTermState()
1.02% 284M
org.apache.lucene.codecs.lucene90.ForUtil#<init>()
0.93% 260M java.nio.DirectByteBufferR#slice()
0.82% 228M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#<init>()
0.81% 227M
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#<init>()
0.81% 225M
org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState#document()
0.77% 214M java.nio.DirectByteBufferR#asLongBuffer()
0.69% 193M
org.apache.lucene.queryparser.classic.Token#newToken()
0.67% 187M java.util.AbstractList#listIterator()
0.66% 185M java.util.Arrays#copyOf()
```
It looks like there's a slight improvement in some queries/sorting. The new
code is much cleaner, so I see no reason not to commit this. I am still open
for suggestions about the FST readers.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]