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.

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

Reply via email to