RFR: 8007806: Need a Throwables performance counter (original) (raw)

Peter Levart peter.levart at gmail.com
Mon Feb 25 17:05:44 UTC 2013


On 02/25/2013 05:30 PM, Nils Loodin wrote:

On 02/25/2013 02:30 PM, Peter Levart wrote:

On 02/25/2013 10:29 AM, Nils Loodin wrote:

On 02/24/2013 11:18 PM, David Holmes wrote:

We've not-so-slightly hijacked Nils' thread here - apologies for that.

David, Peter! Yes you did :) However, feel free to make it up to me by: 1. Suggest a good name for the counter As Jason Mehrens pointed out in this thread, the "thrownThrowables" might be misleading if the counter is incremented in the Throwable constructors (or are you going to instrument the throw sites?). So it might better be called what it is: "constructedThrowables". Yes, this is a common idiom: throw new ThrowableSubclass(...); ...but the number of thrown and constructed throwables may diverge considerably in situations like for example: - preallocated throwable instances used (and reused) as a form of "long return" (from lambdas). - deserialized throwables on RMI clients that are thrown on the server side, transfered over the wire and re-thrown on client side (de-seriailization does not call the constructor) I changed it to sun.throwables.numThrowables in http://cr.openjdk.java.net/~nloodin/8007806/webrev.01/ Is this better? However, bear in mind that it's not exactly specified where this is going to be incremented from yet. Nothing in this change states that it's going to be incremented from the Throwable constructor.

These are just suggestions... thinking loud ...

Other hierarchical names for counters use two common forms (note plural/singular):

sun.classloader.findClassTime sun.classloader.findClasses sun.classloader.parentDelegationTime

or:

java.threads.daemon java.threads.live java.threads.livePeak java.threads.started

So by these forms, the name could be:

sun.throwable.numThrowables

or:

sun.throwables.num[ber]

might be later changed to (if instrumented to increment at construction time and/or throw time):

sun.throwables.constructed sun.throwables.thrown

until then, it could be simply:

sun.throwables

Regards, Peter

Regards, Nils Loodin



More information about the core-libs-dev mailing list