RFR: 8316670: Remove effectively unused nmethodBucket::_count [v2]
Thomas Schatzl
tschatzl at openjdk.org
Fri Sep 22 07:39:13 UTC 2023
On Fri, 22 Sep 2023 07:35:33 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> src/hotspot/share/code/dependencyContext.cpp line 99:
>>
>>> 97: assert_lock_strong(CodeCache_lock);
>>> 98: for (nmethodBucket* b = dependencies_not_unloading(); b != nullptr; b = b->next_not_unloading()) {
>>> 99: if (nm == b->get_nmethod()) {
>>
>> This search might not be useful anymore. We could just add the record unconditionally. Do we know how often we get duplicate entries (what's the typical value of "count" today)?
>
> That's an interesting question, but I would prefer to keep any kind of optimizations out of this cleanup.
>
> I am currently investigating class/code cache unloading performance which seems highly dependent on the number of `nmethodBuckets` anyway, so I could investigate that a little.
>
> However since the dominant part of class unloading (~80% of time) is removing all dependents (see the numbers in [JDK-8316581](https://bugs.openjdk.org/browse/JDK-8316581) and class unloading is (after some patches of mine) already the top time consumer; I am not completely clear about the exact cause though) I would prefer not adding to that.
> Also we do not know how much time this takes compared to other compilation tasks (if you have numbers, I would be interested), i.e. if it is worth actually optimizing this method.
With "Class unloading" I mean the `SystemDictionary::do_unloading()` call.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15863#discussion_r1333998796
More information about the hotspot-compiler-dev
mailing list