RFR: Full GC should cleanup earlier/bad version of redefined classes
Zhengyu Gu
zgu at redhat.com
Tue Jun 5 18:41:10 UTC 2018
>>>
>>> Yes, we do unload classes during full gc. However, if the flag =
>>> false, it won't do the cleanup within full gc cycle, and those classes
>>> can still be seen after full gc, which fails the test.
>> In other words, it expects full gc to cleanup those classes, cause
>> cleanup tasks may run much later.
>
> So what if we call the parallelcleaning from full-gc instead? What you
> propose enables serial cleaning, which might impact our (good) full-gc
> performance.
We do parallel cleaning from full-gc, but it is not enough and "defer
cleaning" is misleading.
Without do_cleaning = true, metadata is not walked and clean
(ClassLoaderDataGraph::do_unloading()), previous versions of redefined
classes are not cleaned.
It is potential costly, but only if there are redefined classes.
Otherwise, it is the same as do_cleaning = false.
Thanks,
-Zhengyu
>
> Roman
>
More information about the shenandoah-dev
mailing list