RFR: 8292059: Do not inline InstanceKlass::allocate_instance() [v3]

Coleen Phillimore coleenp at openjdk.org
Thu Mar 9 15:52:29 UTC 2023


On Thu, 9 Mar 2023 10:36:36 GMT, Afshin Zafari <duke at openjdk.org> wrote:

>> The inline and not-inline versions of the method is stress tested to compare the performance difference. 
>> The `oop java_class` input parameter is changed to `InstanceKlass *` to gain more performance.
>> The statistics are drawn in the following charts. The vertical axis is in milliseconds.
>> 
>> ![chart (2)](https://user-images.githubusercontent.com/4697012/221848555-2884313e-9d26-41c9-a265-3f1ce295b17b.png)
>> 
>> ![chart (3)](https://user-images.githubusercontent.com/4697012/221863810-94118677-b4af-468f-90c6-5ea365ae3588.png)
>
> Afshin Zafari has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8292059: Do not inline InstanceKlass::allocate_instance()

There was a small performance difference (loss) with making the static InstanceKlass::allocate_instance function not inlined.  The experiment to effectively inline the conversion from oop  java_class to InstanceKlass regained this performance in Afshin's testing.  I agree the parameter change is messy and with Claes that we should have a utility function - in instanceKlass.inline.hpp.  Maybe call it from_class like:

InstanceKlass* InstanceKlass::from_class(oop java_class) { ... }

-------------

PR: https://git.openjdk.org/jdk/pull/12782


More information about the hotspot-dev mailing list