Invokedynamic slower than reflection?
John Rose
john.r.rose at oracle.com
Thu Jul 15 15:48:54 PDT 2010
It was some sort of bitrot.
I pushed a fix for this to mlvm/hotspot.
Thanks for the reports!
-- John
On Jun 5, 2010, at 10:58 AM, Rémi Forax wrote:
> Le 05/06/2010 02:01, John Rose a écrit :
>> Is the call site megamutable? (Is it linked many times instead of once?) -- John
>>
>
> no !
> The callsite is linked only once.
>
> Rémi
>
>> On Jun 4, 2010, at 4:40 AM, Rémi Forax wrote:
>>
>>
>>> It's funny, I've found the same error last night.
>>>
>>> Yes, there is a problem,
>>> if you run with -XX:+PrintCompilation, you will see
>>> lot of "made not entrant" on the same bytecode location.
>>>
>>> 183% made not entrant (2) Hello::main @ -2 (145 bytes)
>>> 184% Hello::main @ 6 (145 bytes)
>>>
>>> It seems that invokedynamic have trouble and
>>> cycle between optimization and deoptimization phases.
>>>
>>> Rémi
>>>
>>> Le 04/06/2010 10:43, Eric Bodden a écrit :
>>>
>>>> Hi all.
>>>>
>>>> I did some simple micro-benchmarking with the current implementation
>>>> of invokedynamic. In the attached test class, I call a method
>>>> "greeter" 100,000,000 times using invokedynamic and then using
>>>> reflection. Reflection only takes about 1338ms, while invokedynamic
>>>> takes about 12099. (This was taken on OSX 10.6, with build
>>>> "1.7.0-internal-stephen_2010_05_28_19_48-b00"). By the way
>>>> invokedynamic works, I had expected it to be at least as fast as a
>>>> reflective call.
>>>>
>>>> Can you tell me if this kind of performance is expected in general?
>>>>
>>>> Best wishes,
>>>> Eric
>>>>
>>>> --
>>>> Dr. Eric Bodden
>>>> Software Technology Group, Technische Universität Darmstadt, Germany
>>>> Tel: +49 6151 16-5478 Fax: +49 6151 16-5410
>>>> Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt
More information about the mlvm-dev
mailing list