Method.invoke(), Contrstuctor.newInstance() and Field.getFieldAccessor() all 
have a needless critical section, causing large slowdowns. This patch a 
replaces the synchronizations by volatile references. Finally, the changes 
remove a doubled reference to another volatile variable.  This also simplifies 
the generated code by commoning up the corresponding load instruction used in 
the fast execution path. 

Speedups from this change are uniformly 2x or better.

The proposed improvement and patch was originated by John Rose.

Thanks,

Mike

Reply via email to