On 2/11/2021 7:55 am, David Holmes wrote:
On 1/11/2021 5:19 pm, Yi Yang wrote:
On Wed, 27 Oct 2021 01:30:37 GMT, Yi Yang <yy...@openjdk.org> wrote:
Some customers want to observe which loaded classes have overridden
the finalize() method. I found that VM.metaspace can output detailed
classes. It seems feasible to add 'f' flag to it. With this patch, I
found that ZipFileSystem left a finalize after applying this patch,
which was obsolete 5 years ago, maybe we should remove it?
Yi Yang has updated the pull request incrementally with one
additional commit since the last revision:
typo
Hi David,
Do we have sufficient class information to combine with the
finalize() status, remembering that we will be reporting on every
single class, to make VM.classes worthwhile? Would a simple command
to list all non-trivially-finalizable classes be useful in itself?
VM.finalizable_classes?
VM.finalizable_classes seems to be too ad-hoc. The only purpose is to
print the class that has non-trivial finalize() method. If, maybe one
day in the future, we want to know which classes have miranda method,
we may need to add another VM.miranda_classes command. VM.classes can
print detailed information of all loaded classes of the JVM, which
looks more extensible and flexible.
My concern is there will be too much information to be useful if you
simply list and flag every single loaded class. We are basically trying
to make a decision whether to add a command that asks a specific query
(show me all finalizable classes), versus a command that just produces a
class dump and the user then has to manually apply their query to that
raw data. There are pros and cons to each approach.
It has been pointed out (thanks Alex) that we already have
VM.class_hierarchy to print all classes, so perhaps that could be
augmented to add a decorator for finalizable classes?
David
This also seems more of a serviceability issue so I've cc'd that mailing
list.
Also this now relates to the new JEP on finalization removal:
https://openjdk.java.net/jeps/421
as a tool to help users see where finalizers exist will be useful to
that effort.
Cheers,
David
Thanks.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6075