gf2121 opened a new pull request #578:
URL: https://github.com/apache/lucene/pull/578


   I find that `org.apache.lucene.facet.taxonomy.IntTaxonomyFacets#increment()` 
is using about 2% cpu of luceneutil, this could probably be replaced with 
`values[doc]++` since `#countAll` will never use hashTable.
   
   Two changes:
   
   1. No need to check `liveDocs` null again and again.
   2. Call `values[doc]++` instead of `#increment` since `#countAll` will never 
use hashTable.
   
   **Benchmark** (baseline is the newest main, including 
https://github.com/apache/lucene/pull/574)
   
   ```
                               TaskQPS baseline      StdDevQPS 
my_modified_version      StdDev                Pct diff p-value
                             IntNRQ      128.51     (27.8%)      120.13     
(27.4%)   -6.5% ( -48% -   67%) 0.455
                           PKLookup      232.55      (5.0%)      226.26      
(4.2%)   -2.7% ( -11% -    6%) 0.065
                           Wildcard      178.54      (5.5%)      175.13      
(5.7%)   -1.9% ( -12% -    9%) 0.283
              BrowseMonthSSDVFacets       16.37      (6.9%)       16.13      
(4.6%)   -1.5% ( -12% -   10%) 0.422
                         HighPhrase      211.52      (3.7%)      209.59      
(3.3%)   -0.9% (  -7% -    6%) 0.414
                          MedPhrase      239.31      (3.2%)      237.14      
(2.5%)   -0.9% (  -6% -    4%) 0.311
                   HighSloppyPhrase       33.08      (3.3%)       32.79      
(3.5%)   -0.9% (  -7% -    6%) 0.407
                            Prefix3      171.63      (7.5%)      170.33      
(8.3%)   -0.8% ( -15% -   16%) 0.762
                            Respell       80.21      (3.3%)       79.74      
(2.7%)   -0.6% (  -6% -    5%) 0.530
                          LowPhrase       26.21      (3.6%)       26.05      
(2.5%)   -0.6% (  -6% -    5%) 0.549
                    LowSloppyPhrase      165.34      (2.4%)      164.47      
(2.7%)   -0.5% (  -5% -    4%) 0.516
                       OrHighNotLow     1984.04      (3.9%)     1974.07      
(5.2%)   -0.5% (  -9% -    8%) 0.730
                          OrHighMed       93.69      (4.2%)       93.23      
(4.1%)   -0.5% (  -8% -    8%) 0.711
                        MedSpanNear       12.19      (3.6%)       12.14      
(4.0%)   -0.3% (  -7% -    7%) 0.777
                             Fuzzy2       98.86      (3.0%)       98.56      
(2.6%)   -0.3% (  -5% -    5%) 0.735
                           HighTerm     2284.28      (4.3%)     2277.92      
(3.4%)   -0.3% (  -7% -    7%) 0.819
          BrowseDayOfYearSSDVFacets       14.65      (4.8%)       14.61      
(4.0%)   -0.3% (  -8% -    8%) 0.844
                        LowSpanNear      101.85      (1.7%)      101.58      
(2.0%)   -0.3% (  -3% -    3%) 0.662
        BrowseRandomLabelSSDVFacets       11.04      (5.4%)       11.02      
(7.2%)   -0.2% ( -12% -   13%) 0.902
                         OrHighHigh       39.59      (4.2%)       39.49      
(4.1%)   -0.2% (  -8% -    8%) 0.859
                             Fuzzy1       84.27      (3.1%)       84.11      
(2.3%)   -0.2% (  -5% -    5%) 0.826
                         AndHighMed       94.85      (5.1%)       94.77      
(6.9%)   -0.1% ( -11% -   12%) 0.969
              HighTermDayOfYearSort      179.66     (17.0%)      179.56     
(12.8%)   -0.1% ( -25% -   35%) 0.991
                            LowTerm     2016.63      (3.5%)     2015.71      
(3.9%)   -0.0% (  -7% -    7%) 0.969
                         AndHighLow     1011.34      (4.1%)     1011.05      
(5.3%)   -0.0% (  -9% -    9%) 0.985
               HighTermTitleBDVSort      121.48     (14.4%)      121.49     
(15.9%)    0.0% ( -26% -   35%) 0.998
                            MedTerm     2239.73      (4.6%)     2245.65      
(3.1%)    0.3% (  -7% -    8%) 0.830
                        AndHighHigh      102.09      (3.1%)      102.48      
(5.3%)    0.4% (  -7% -    9%) 0.778
                       OrNotHighLow     1113.23      (2.3%)     1117.98      
(2.4%)    0.4% (  -4% -    5%) 0.568
                       HighSpanNear        1.92      (4.7%)        1.93      
(5.4%)    0.5% (  -9% -   11%) 0.738
                       OrHighNotMed     1322.20      (4.3%)     1330.58      
(3.1%)    0.6% (  -6% -    8%) 0.592
            AndHighMedDayTaxoFacets       65.82      (1.8%)       66.30      
(2.5%)    0.7% (  -3% -    5%) 0.295
                       OrNotHighMed     1262.49      (3.0%)     1272.12      
(3.8%)    0.8% (  -5% -    7%) 0.480
               MedTermDayTaxoFacets       52.07      (4.7%)       52.54      
(6.9%)    0.9% ( -10% -   13%) 0.628
                      OrNotHighHigh      944.56      (3.7%)      953.87      
(3.0%)    1.0% (  -5% -    7%) 0.352
                    MedSloppyPhrase       64.28      (5.4%)       64.92      
(4.7%)    1.0% (  -8% -   11%) 0.531
                          OrHighLow      921.30      (2.8%)      930.66      
(2.6%)    1.0% (  -4% -    6%) 0.232
           AndHighHighDayTaxoFacets       23.67      (3.4%)       23.93      
(4.2%)    1.1% (  -6% -    9%) 0.380
                      OrHighNotHigh     1186.72      (3.3%)     1202.71      
(3.6%)    1.3% (  -5% -    8%) 0.222
                  HighTermMonthSort      160.65     (14.7%)      164.05     
(14.0%)    2.1% ( -23% -   36%) 0.641
             OrHighMedDayTaxoFacets       15.46      (8.0%)       15.82      
(9.0%)    2.3% ( -13% -   21%) 0.393
                LowIntervalsOrdered       67.72      (6.2%)       69.70      
(7.8%)    2.9% ( -10% -   17%) 0.188
                         TermDTSort      140.38     (14.3%)      144.53     
(15.1%)    3.0% ( -23% -   37%) 0.525
                MedIntervalsOrdered       30.74      (7.2%)       31.79      
(8.9%)    3.4% ( -11% -   21%) 0.186
               HighIntervalsOrdered       23.08      (9.6%)       24.19     
(11.4%)    4.8% ( -14% -   28%) 0.151
        BrowseRandomLabelTaxoFacets       12.83     (10.3%)       15.91     
(56.9%)   24.0% ( -39% -  101%) 0.064
               BrowseDateTaxoFacets       14.28     (13.0%)       18.66     
(68.0%)   30.7% ( -44% -  128%) 0.047
          BrowseDayOfYearTaxoFacets       14.37     (13.1%)       18.92     
(70.0%)   31.7% ( -45% -  132%) 0.047
              BrowseMonthTaxoFacets       16.23     (12.6%)       24.57     
(66.4%)   51.4% ( -24% -  149%) 0.001
   ```
   
   **baseline**
   ```
   5.48%         23030         
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#nextPosition()
   4.31%         18110         
org.apache.lucene.queries.spans.NearSpansOrdered#stretchToOrder()
   3.68%         15450         
org.apache.lucene.util.packed.DirectReader$DirectPackedReader20#get()
   3.65%         15362         
org.apache.lucene.queries.spans.TermSpans#nextStartPosition()
   3.23%         13569         
org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts#countOneSegment()
   2.66%         11187         
org.apache.lucene.queries.spans.SpanScorer#setFreqCurrentDoc()
   2.62%         11023         
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#skipPositions()
   2.15%         9056          
org.apache.lucene.queries.spans.NearSpansOrdered#nextStartPosition()
   2.13%         8934          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$DenseNumericDocValues#nextDoc()
   1.86%         7818          
org.apache.lucene.facet.taxonomy.IntTaxonomyFacets#increment()
   1.80%         7552          
org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts#countAll()
   1.67%         7024          jdk.internal.misc.Unsafe#convEndian()
   1.63%         6860          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$20#ordValue()
   1.56%         6576          
org.apache.lucene.util.packed.DirectReader$DirectPackedReader4#get()
   1.54%         6461          java.nio.Buffer#checkIndex()
   1.45%         6113          org.apache.lucene.search.ConjunctionDISI#doNext()
   1.41%         5947          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$4#longValue()
   1.33%         5590          
org.apache.lucene.store.ByteBufferGuard#ensureValid()
   1.28%         5377          
org.apache.lucene.queries.intervals.OrderedIntervalsSource$OrderedIntervalIterator#nextInterval()
   1.25%         5273          
org.apache.lucene.queries.spans.NearSpansOrdered#twoPhaseCurrentDocMatches()
   1.16%         4877          
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#advance()
   1.16%         4868          
org.apache.lucene.util.packed.DirectReader$DirectPackedReader12#get()
   1.15%         4855          
org.apache.lucene.queries.spans.TermSpans#endPosition()
   1.15%         4852          java.nio.Buffer#scope()
   1.15%         4838          
org.apache.lucene.search.similarities.BM25Similarity$BM25Scorer#score()
   1.14%         4775          java.nio.DirectByteBuffer#ix()
   1.13%         4735          
org.apache.lucene.queries.spans.NearSpansOrdered#advancePosition()
   1.01%         4229          org.apache.lucene.store.ByteBufferGuard#getByte()
   1.00%         4223          
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#advance()
   0.97%         4065          
jdk.internal.misc.ScopedMemoryAccess#getByteInternal()
   ```
   
   **candidate**
   
   ```
   5.15%         21244         
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#nextPosition()
   4.85%         19998         
org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts#countAll()
   3.78%         15561         
org.apache.lucene.util.packed.DirectReader$DirectPackedReader20#get()
   3.74%         15406         
org.apache.lucene.queries.spans.NearSpansOrdered#stretchToOrder()
   3.41%         14066         
org.apache.lucene.queries.spans.TermSpans#nextStartPosition()
   3.27%         13463         
org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts#countOneSegment()
   2.88%         11859         
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#skipPositions()
   2.75%         11352         
org.apache.lucene.queries.spans.SpanScorer#setFreqCurrentDoc()
   2.04%         8424          
org.apache.lucene.queries.spans.NearSpansOrdered#nextStartPosition()
   1.72%         7102          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$20#ordValue()
   1.69%         6967          jdk.internal.misc.Unsafe#convEndian()
   1.57%         6485          
org.apache.lucene.util.packed.DirectReader$DirectPackedReader4#get()
   1.43%         5878          java.nio.Buffer#checkIndex()
   1.41%         5813          org.apache.lucene.search.ConjunctionDISI#doNext()
   1.34%         5535          
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$EverythingEnum#advance()
   1.28%         5269          
org.apache.lucene.store.ByteBufferGuard#ensureValid()
   1.24%         5122          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$4#longValue()
   1.21%         4992          
jdk.internal.misc.ScopedMemoryAccess#getByteInternal()
   1.21%         4981          
org.apache.lucene.queries.intervals.OrderedIntervalsSource$OrderedIntervalIterator#nextInterval()
   1.17%         4809          java.nio.DirectByteBuffer#ix()
   1.12%         4628          
org.apache.lucene.queries.spans.NearSpansOrdered#advancePosition()
   1.12%         4601          
org.apache.lucene.search.similarities.BM25Similarity$BM25Scorer#score()
   1.11%         4585          org.apache.lucene.store.ByteBufferGuard#getByte()
   1.11%         4575          
org.apache.lucene.util.packed.DirectReader$DirectPackedReader12#get()
   1.07%         4417          
org.apache.lucene.codecs.lucene90.ForUtil#expand8()
   1.05%         4332          java.nio.Buffer#scope()
   1.02%         4195          
org.apache.lucene.queries.spans.NearSpansOrdered#twoPhaseCurrentDocMatches()
   1.01%         4150          
org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$20#nextDoc()
   0.99%         4101          
org.apache.lucene.queries.spans.TermSpans#endPosition()
   0.99%         4065          
org.apache.lucene.codecs.lucene90.Lucene90PostingsReader$BlockImpactsPostingsEnum#advance()
   ```
    


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to