RFR: 8255883: Avoid multiple GeneratedMethodAccessor for same NativeMethod… [v2]
Hui Shi
hshi at openjdk.java.net
Mon Nov 9 03:01:58 UTC 2020
On Fri, 6 Nov 2020 08:58:13 GMT, Joel Borggrén-Franck <jfranck at openjdk.org> wrote:
> Are there any benchmarks to compare this accessor with the previous version in the presumably common case where there is no or very little contention? Edit to clarify: it is stated as "trivial" is this also measured somewhere?
@jbf in presumably common case, one extra CAS is added when invocation reach threshold.
MethodInvoke in jdk repo micro benchmark test shows no regression with this patch.
**Before patch**
Benchmark Mode Cnt Score Error Units
MethodInvoke.invokeWithSixObjectParams avgt 25 5.443 ? 0.008 ns/op
MethodInvoke.invokeWithSixPrimitiveParams avgt 25 10.195 ? 0.020 ns/op
MethodInvoke.invokeWithoutParams avgt 25 3.919 ? 0.011 ns/op
Benchmark Mode Cnt Score Error Units
MethodInvoke.invokeWithSixObjectParams avgt 25 5.440 ? 0.012 ns/op
MethodInvoke.invokeWithSixPrimitiveParams avgt 25 10.197 ? 0.028 ns/op
MethodInvoke.invokeWithoutParams avgt 25 3.923 ? 0.010 ns/op
**After patch**
Benchmark Mode Cnt Score Error Units
MethodInvoke.invokeWithSixObjectParams avgt 25 5.438 ? 0.005 ns/op
MethodInvoke.invokeWithSixPrimitiveParams avgt 25 10.190 ? 0.038 ns/op
MethodInvoke.invokeWithoutParams avgt 25 3.930 ? 0.010 ns/op
Finished running test 'micro:java.lang.reflect.MethodInvoke'
Benchmark Mode Cnt Score Error Units
MethodInvoke.invokeWithSixObjectParams avgt 25 5.442 ? 0.009 ns/op
MethodInvoke.invokeWithSixPrimitiveParams avgt 25 10.205 ? 0.034 ns/op
MethodInvoke.invokeWithoutParams avgt 25 3.916 ? 0.005 ns/op
-------------
PR: https://git.openjdk.java.net/jdk/pull/1070
More information about the core-libs-dev
mailing list