Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-365

[PATCH] Performance improvement to DisjunctionSumScorer

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1
    • Component/s: core/search
    • Labels:
      None
    • Environment:

      Operating System: other
      Platform: Other

    • Bugzilla Id:
      34193

      Description

      A recent profile of the new BooleanScorer2 showed that
      quite a bit of CPU time is spent in the advanceAfterCurrent method
      of DisjunctionScorer, and in the PriorityQueue of scorers that
      is used there.

      This patch reduces the internal overhead of DisjunctionScorer
      to about 70% of the current one (ie. 30% saving in cpu time).
      It also reduces the number of calls to the subscorers, but
      that was not measured.

      To get this, it was necessary to specialize the PriorityQueue
      for a Scorer and to add move some code fragments from DisjunctionScorer
      to this specialized queue.

        Attachments

          Activity

            People

            • Assignee:
              yseeley@gmail.com Yonik Seeley
              Reporter:
              paul.elschot@xs4all.nl Paul Elschot
            • Votes:
              2 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: