original-brownbear opened a new pull request, #13901:
URL: https://github.com/apache/lucene/pull/13901

   Sam as #13892 but much simpler.  Almost exclusively mechanical moving of 
fields to a shared parent and obvious deduplication. The only exceptions being 
the introduction of an array summing utility method and the removal of some 
irrelevant conditionals in `canReuse` (a few of those flags were never used in 
logic so we can reuse a wider range here).
   
   This comes with some mild but statistically significant performance boosts:
   
   ```
                        AndHighHigh       35.85      (7.8%)       35.12      
(6.9%)   -2.0% ( -15% -   13%) 0.222
                       OrHighNotLow      241.37      (7.4%)      236.75      
(6.4%)   -1.9% ( -14% -   12%) 0.215
                            MedTerm      252.90      (7.9%)      248.28      
(7.5%)   -1.8% ( -15% -   14%) 0.289
                           HighTerm      213.40      (8.4%)      209.61      
(8.3%)   -1.8% ( -17% -   16%) 0.343
                         OrHighHigh       20.41      (8.8%)       20.05      
(8.0%)   -1.8% ( -17% -   16%) 0.347
                       OrHighNotMed      176.86      (7.1%)      174.01      
(6.4%)   -1.6% ( -14% -   12%) 0.288
                         AndHighMed       78.70      (5.4%)       77.65      
(4.8%)   -1.3% ( -10% -    9%) 0.242
                          OrHighMed       78.23      (4.7%)       77.41      
(4.8%)   -1.0% ( -10% -    8%) 0.323
                      OrHighNotHigh      182.18      (6.9%)      180.33      
(6.3%)   -1.0% ( -13% -   13%) 0.492
                           PKLookup      157.92      (4.2%)      157.02      
(4.2%)   -0.6% (  -8% -    8%) 0.539
          BrowseDayOfYearSSDVFacets        6.15      (7.8%)        6.12      
(7.7%)   -0.5% ( -14% -   16%) 0.754
              BrowseMonthSSDVFacets        6.37      (6.7%)        6.34      
(7.9%)   -0.5% ( -14% -   15%) 0.760
                            LowTerm      375.27      (3.7%)      373.44      
(3.7%)   -0.5% (  -7% -    7%) 0.558
                            Prefix3       97.84      (3.0%)       97.46      
(2.9%)   -0.4% (  -6% -    5%) 0.559
                      OrNotHighHigh      203.94      (6.1%)      203.17      
(5.5%)   -0.4% ( -11% -   11%) 0.771
                        LowSpanNear       53.66      (3.3%)       53.46      
(4.5%)   -0.4% (  -7% -    7%) 0.672
                          OrHighLow      425.07      (2.3%)      423.51      
(2.7%)   -0.4% (  -5% -    4%) 0.506
              BrowseMonthTaxoFacets        4.89      (0.4%)        4.88      
(2.6%)   -0.3% (  -3% -    2%) 0.447
                           Wildcard       39.55      (3.3%)       39.48      
(3.3%)   -0.2% (  -6% -    6%) 0.813
            AndHighMedDayTaxoFacets       39.61      (1.9%)       39.55      
(2.5%)   -0.2% (  -4% -    4%) 0.758
                       OrNotHighLow      490.40      (1.5%)      489.88      
(1.5%)   -0.1% (  -3% -    2%) 0.749
                         TermDTSort       93.70      (3.8%)       93.69      
(3.5%)   -0.0% (  -7% -    7%) 0.983
                            Respell       41.70      (1.3%)       41.72      
(1.7%)    0.1% (  -2% -    3%) 0.880
                             Fuzzy1       28.73      (3.1%)       28.75      
(2.8%)    0.1% (  -5% -    6%) 0.937
        BrowseRandomLabelSSDVFacets        4.20      (4.8%)        4.21      
(4.5%)    0.1% (  -8% -    9%) 0.916
                       OrNotHighMed      186.46      (3.8%)      186.73      
(3.1%)    0.1% (  -6% -    7%) 0.852
                    MedSloppyPhrase        8.16      (5.0%)        8.18      
(4.6%)    0.2% (  -9% -   10%) 0.878
                       HighSpanNear       10.94      (3.8%)       10.96      
(5.7%)    0.2% (  -8% -   10%) 0.853
                             Fuzzy2       63.72      (1.1%)       63.86      
(1.2%)    0.2% (  -1% -    2%) 0.379
               HighIntervalsOrdered        9.75      (6.3%)        9.78      
(6.3%)    0.3% ( -11% -   13%) 0.842
                             IntNRQ       10.90      (3.0%)       10.93      
(2.4%)    0.3% (  -4% -    5%) 0.605
                         AndHighLow      652.14      (2.5%)      654.47      
(2.4%)    0.4% (  -4% -    5%) 0.516
                  HighTermMonthSort      565.94      (1.4%)      567.99      
(1.5%)    0.4% (  -2% -    3%) 0.257
             OrHighMedDayTaxoFacets        5.39      (2.9%)        5.41      
(2.9%)    0.4% (  -5% -    6%) 0.572
           AndHighHighDayTaxoFacets        7.05      (3.7%)        7.08      
(4.1%)    0.4% (  -7% -    8%) 0.630
               BrowseDateSSDVFacets        1.32      (6.9%)        1.32      
(5.0%)    0.6% ( -10% -   13%) 0.662
              HighTermDayOfYearSort      109.69      (2.7%)      110.49      
(2.9%)    0.7% (  -4% -    6%) 0.238
                LowIntervalsOrdered        7.51      (5.0%)        7.57      
(5.2%)    0.8% (  -8% -   11%) 0.495
                          LowPhrase      130.41      (2.1%)      131.44      
(1.8%)    0.8% (  -3% -    4%) 0.070
                  HighTermTitleSort       16.37      (1.2%)       16.50      
(1.9%)    0.8% (  -2% -    3%) 0.021
        BrowseRandomLabelTaxoFacets        4.83     (21.7%)        4.88     
(22.6%)    0.9% ( -35% -   57%) 0.850
               HighTermTitleBDVSort        7.37      (2.8%)        7.44      
(3.3%)    0.9% (  -5% -    7%) 0.172
                MedIntervalsOrdered       23.60      (5.6%)       23.84      
(4.4%)    1.0% (  -8% -   11%) 0.357
               MedTermDayTaxoFacets       24.86      (3.5%)       25.30      
(3.6%)    1.8% (  -5% -    9%) 0.026
                    LowSloppyPhrase       17.80      (1.8%)       18.14      
(2.1%)    1.9% (  -2% -    5%) 0.000
               BrowseDateTaxoFacets        5.60     (25.6%)        5.71     
(26.3%)    1.9% ( -39% -   72%) 0.739
                         HighPhrase       50.13      (1.9%)       51.11      
(1.5%)    1.9% (  -1% -    5%) 0.000
          BrowseDayOfYearTaxoFacets        5.71     (26.9%)        5.82     
(27.9%)    2.0% ( -41% -   77%) 0.746
                   HighSloppyPhrase       11.70      (2.6%)       11.96      
(2.7%)    2.2% (  -2% -    7%) 0.000
                          MedPhrase       13.49      (2.5%)       13.88      
(2.0%)    2.9% (  -1% -    7%) 0.000
                        MedSpanNear       14.99      (1.7%)       15.64      
(1.9%)    4.4% (   0% -    8%) 0.000
   ```
   
   It's a little hard to attribute these to a single change, but likely the 
extremely hot (almost 1% of the runtime for the wikimedium benchmark run) 
sum-computation compiles much better now that it lives in it's own method 
without field access than before when it would update a field in a loop (which 
I believe the compiler will not optimize away in current Java implementations).


-- 
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