uschindler commented on pull request #177:
URL: https://github.com/apache/lucene/pull/177#issuecomment-866980038


   > > But I think it would be improved by providing some more diagnostics 
(LogCompilation or whatever, maybe JIT stats in the JFR output). Let it be a 
"canary" to find little ways to improve.
   > 
   > +1. I wonder if we could tap into those in real-time and get a sense of 
when the JVM really is roughly "warmed up", instead of the static "discard 
first N samples for each task" that we do now. Or maybe to detect 
mis-compilation of `readVInt`!
   
   Unfortunately, you can't get the compilation events from inside the JVM, but 
with the help of the outer python process it might be possible:
   
   The inner java process just benchmarks every round/query and does not throw 
away anything. After each round it prints the information in "machine readable 
form" to stdout. In addition we turn on `-XX:+PrintCompilation` on the JVM 
command line.
   
   The outer python process just reads process output and reacts to events:
   - if a benchmark query was finished it records the machine readable number
   - if it gets a compilation event on stdout (some regex can catch it), it 
greps for some "hot method" like "readVInt" and once it sees a compilation 
event (with tiered you jave to look for compilation stage 4, also known as C2), 
it switches the flag and from now on it can use the numbers recorded
   
   That's just an idea.


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

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