JRuby invokedynamic updates
Charles Oliver Nutter
headius at headius.com
Fri Aug 12 17:29:57 PDT 2011
On Fri, Aug 12, 2011 at 4:44 AM, Christian Thalinger
<christian.thalinger at oracle.com> wrote:
> Well, it's the good old:
>
> @ 95 java.lang.invoke.MethodHandle::invokeExact (45 bytes) size > DesiredMethodLimit
>
> This seems to be the last recursive call that doesn't get inlined. Setting MaxRecursiveInlineLevel=0 makes it go faster. I finally filed (a separate bug to keep this a single change):
>
> 7078382: JSR 292: don't count method handle adapters against inlining budgets
>
> The proposed fix is:
>
> http://cr.openjdk.java.net/~twisti/7078382/
>
> The numbers are now like they should be:
That's great! I have confirmed the perf improvement here as well.
The new numbers are looking *much* better now. There's still a bit of
overhead from factoring the original fib into more methods, but it's
getting smaller :)
normal fib
9227465
1.153000 0.000000 1.153000 ( 1.153000)
fib with constants
9227465
2.167000 0.000000 2.167000 ( 2.167000)
fib with additional calls
9227465
1.275000 0.000000 1.275000 ( 1.275000)
fib with constants and additional calls
9227465
2.442000 0.000000 2.442000 ( 2.442000)
Compare to non-indy:
normal fib
9227465
1.995000 0.000000 1.995000 ( 1.995000)
fib with constants
9227465
3.637000 0.000000 3.637000 ( 3.637000)
fib with additional calls
9227465
3.279000 0.000000 3.279000 ( 3.279000)
fib with constants and additional calls
9227465
4.352000 0.000000 4.352000 ( 4.352000)
I will proceed with more indy updates!
- Charlie
More information about the mlvm-dev
mailing list