RFR: 8219713: Reduce work in DefaultMethods::generate_default_methods
Karen Kinnear
karen.kinnear at oracle.com
Thu Mar 7 14:57:29 UTC 2019
Claes,
Exactly. And consider that reviewed by me.
And many thanks,
Karen
> On Mar 6, 2019, at 3:22 PM, Claes Redestad <claes.redestad at oracle.com> wrote:
>
> Hi Karen,
>
> On 2019-03-05 23:48, Karen Kinnear wrote:
>> Claes,
>> Lois and I met today to discuss these changes.
>> First - we are very grateful you dove in, identified performance issues and are proposing
>> solutions.
>> Second - could you please check in three out of the four kinds of changes:
>> 1) remove extra walking of Object
>> 2) remove unused code
>> 3) change the order of the conditionals so we reduce time spent in Lookup.
>
> Ok, basically the entire patch, plus this to revert the changes on line
> 606:
>
> diff -r 9ee9ac93e39b src/hotspot/share/classfile/defaultMethods.cpp
> --- a/src/hotspot/share/classfile/defaultMethods.cpp Wed Mar 06 21:28:03 2019 +0100
> +++ b/src/hotspot/share/classfile/defaultMethods.cpp Wed Mar 06 21:28:33 2019 +0100
> @@ -603,7 +603,7 @@
> while (super != NULL) {
> for (int i = 0; i < super->methods()->length(); ++i) {
> Method* m = super->methods()->at(i);
> - if (m->is_overpass() || (m->is_static() && !SystemDictionary::is_nonpublic_Object_method(m))) {
> + if (m->is_overpass() || m->is_static()) {
> // m is a method that would have been a miranda if not for the
> // default method processing that occurred on behalf of our superclass,
> // so it's a method we want to re-examine in this new context. That is,
>
> I'll run some sanity testing and push.
>
>> And - could you please file a follow-up RFE to investigate improvements in the
>> default method processing for static methods, with notes about the performance benefits
>> of skipping processing for RegisterNatives and <clinit>?
>
> Sure, I'll do that.
>
> Thanks!
>
> /Claes
More information about the hotspot-runtime-dev
mailing list