RFR: 8007806: Need a Throwables performance counter

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