[
https://issues.apache.org/jira/browse/LUCENE-10534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17528798#comment-17528798
]
Kevin Risden edited comment on LUCENE-10534 at 4/27/22 1:48 PM:
----------------------------------------------------------------
Simple JMH performance tests comparing the original MaxFloatFunction and
original FloatFieldSource to the new ones from PR #837 and #840. Interestingly
this shows that the new MaxFloatFunction doesn't help performance at all and
makes it slightly worse. All the performance gains are from the new
FloatFieldSource impl.
||Benchmark||Mode||Cnt||Score and Error||Units||
|MyBenchmark.testMaxFloatFunction|thrpt|25|65.668 ± 2.724|ops/s|
|MyBenchmark.testMaxFloatFunctionNewFloatFieldSource|thrpt|25|113.779 ±
8.229|ops/s|
|MyBenchmark.testNewMaxFloatFunction|thrpt|25|64.588 ± 1.154|ops/s|
|MyBenchmark.testNewMaxFloatFunctionNewFloatFieldSource|thrpt|25|115.084 ±
12.421|ops/s|
|MyBenchmark.testMaxFloatFunctionRareField|thrpt|25|237.400 ± 7.981|ops/s|
|MyBenchmark.testMaxFloatFunctionNewFloatFieldSourceRareField|thrpt|25|281.997
± 27.575|ops/s|
|MyBenchmark.testNewMaxFloatFunctionRareField|thrpt|25|236.144 ± 5.528|ops/s|
|MyBenchmark.testNewMaxFloatFunctionNewFloatFieldSourceRareField|thrpt|25|269.662
± 8.247|ops/s|
Source: https://github.com/risdenk/lucene-jmh
was (Author: risdenk):
[https://github.com/risdenk/lucene-jmh]
Simple JMH performance tests comparing the original MaxFloatFunction and
original FloatFieldSource to the new ones from PR #837 and #840. Interestingly
this shows that the new MaxFloatFunction doesn't help performance at all and
makes it slightly worse. All the performance gains are from the new
FloatFieldSource impl.
> MinFloatFunction / MaxFloatFunction exists check can be slow
> ------------------------------------------------------------
>
> Key: LUCENE-10534
> URL: https://issues.apache.org/jira/browse/LUCENE-10534
> Project: Lucene - Core
> Issue Type: Improvement
> Reporter: Kevin Risden
> Assignee: Kevin Risden
> Priority: Minor
> Attachments: flamegraph.png, flamegraph_getValueForDoc.png
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> MinFloatFunction
> (https://github.com/apache/lucene/blob/main/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MinFloatFunction.java)
> and MaxFloatFunction
> (https://github.com/apache/lucene/blob/main/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxFloatFunction.java)
> both check if values exist. This is needed since the underlying valuesource
> returns 0.0f as either a valid value or as a value when the document doesn't
> have a value.
> Even though this is changed to anyExists and short circuits in the case a
> value is found in any document, the worst case is that there is no value
> found and requires checking all the way through to the raw data. This is only
> needed when 0.0f is returned and need to determine if it is a valid value or
> the not found case.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]