This is not a proposal to add one more benchmark module to Lucene, but I've been digging into simpler ways to explore luceneutil benchmark behavior via a home game that allows simpler rules and introspection.
I've got a couple half baked straw-men already that I have been playing with for such an experience, but there are various issues that have kept them a bit out of solid reach as of yet. In somewhat of a plan b mode that feels to me like a plan better than A mode, I already have some JMH boiler plate and recent time on JMH work, and as I'm essentially looking for the JMH experience, I've whipped up the groundwork to get it. I'm a big fan of JMH and it's various profilers and functionality. So I've got an early home game version up here if anyone else has ever had such an itch: https://github.com/apache/lucene/pull/365 It can run a similar style of benchmark as luceneutil, using a luceneutil created index and task file. And as an example of more general lucene micro benchmark options there is a simple, contrived FuzzyQuery benchmark to play with. More details in the draft PR (which is just a nice home for it at the moment), such as how to run the luceneutil approximate. There is also a slim, early README here: https://github.com/markrmiller/lucene/blob/JMH/lucene/jmh/README.md >From the PR, the easy getting started cut and paste is below. If you are a JMH fan like I am, check it out and enjoy. It's a small experiment, but allows for a decent amount of play. Mark git clone -b JMH --single-branch https://github.com/markrmiller/lucene.git cd lucene/lucene/jmh ./jmh.sh FuzzyQuery // async-profiler flame graphs to lucene/lucene/jmh/work/*, 1 warm up iteration, 1 iteration, 1 second each, measures throughput https://github.com/markrmiller/lucene/blob/JMH/lucene/jmh/README.md#using-jmh-with-async-profiler ./jmh.sh FuzzyQuery -w 1 -wi 1 -r 1 -i 1 -prof async:dir=work;output=flamegraph
