RFR: 8003322: Add instrumentation points for tracing of I/O calls

Alan Bateman Alan.Bateman at oracle.com
Mon Nov 19 09:52:02 UTC 2012


On 15/11/2012 15:50, Staffan Larsen wrote:
> I now have some micro-benchmark numbers on windows and linux (the 
> solaris runs are not complete yet). While doing these runs we 
> initially saw a regression on the file reading benchmarks. 
> Investigation showed that the compiler was not able to inline the 
> IoTrace.xxBegin() and IoTrace.xxEnd() methods because the 
> IoTraceContext class in the signature had not yet been loaded. This 
> forced me to go back to just an Object in the signatures for these 
> methods which allowed them to be inlined and performance restored.
>
Thanks for creating a set of micro-benchmarks and reducing the concern 
about this instrumentation.

I guess you saw the review request from Nils where he proposed adding 
invasive instrumentation to Throwable.  The consensus in the replies was 
that bytecode instrumentation seemed more appropriate. Aside from the 
path field that you've added to the streams classes, is there any reason 
why the I/O instrumentation couldn't also be done with bytecode 
instrumentation?

-Alan



More information about the core-libs-dev mailing list