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