-
Notifications
You must be signed in to change notification settings - Fork 25k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESQL: Block access benchmark #102872
ESQL: Block access benchmark #102872
Conversation
f40ba93
to
14726e6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like the right direction, yeah!
benchmarks/src/main/java/org/elasticsearch/benchmark/compute/operator/BlockBenchmark.java
Outdated
Show resolved
Hide resolved
benchmarks/src/main/java/org/elasticsearch/benchmark/compute/operator/BlockBenchmark.java
Outdated
Show resolved
Hide resolved
benchmarks/src/main/java/org/elasticsearch/benchmark/compute/operator/BlockBenchmark.java
Outdated
Show resolved
Hide resolved
benchmarks/src/main/java/org/elasticsearch/benchmark/compute/operator/BlockBenchmark.java
Outdated
Show resolved
Hide resolved
Perform a small benchmark run at class loading time to ensure all classes used in the benchmark are loaded before the first iteration. This is important to avoid accidentally measuring some JVM optimizations that will not be possible in production (method inlining in case of small number of interface implementers or similar).
Pinging @elastic/es-ql (Team:QL) |
Pinging @elastic/elasticsearch-esql (:Query Languages/ES|QL) |
Ran the bench on my machine to get a first idea:
(Note: I didn't take particular precautions to guard against noise, didn't disable optimizations, didn't bind to single CPU, so we could also get more precise results.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Looks useful! Let's land it. I imagine we'll play with this a lot over the next few years. |
Add a micro benchmark for access times to individual block elements.
Benchmark how long it takes to access elements of
IntBlock
s,BooleanBlock
s, etc.This helps guard against performance regressions when refactoring Block and Vector classes.