RFR (M): 8207266: ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread
Hohensee, Paul
hohensee at amazon.com
Thu Sep 19 13:17:09 UTC 2019
I'll have the default method throw UOE. That's the same as the other default methods do.
The necessary test fix is in test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/server/ServerThreadMXBeanNew.java, which needs a new getCurrentThreadAllocatedBytes method, defined as
public long getCurrentThreadAllocatedBytes() {
return (Long) invokeMethod("getCurrentThreadAllocatedBytes",
new Object[] { },
new String[] { });
}
With this fix, the 134 tests in test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean pass. Preliminary webrev at
http://cr.openjdk.java.net/~phh/8231211/webrev.00/
Is it worth adding getCurrentThreadAllocatedBytes tests to the test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes set?
Paul
On 9/18/19, 8:16 PM, "David Holmes" <david.holmes at oracle.com> wrote:
On 19/09/2019 12:57 pm, Mandy Chung wrote:
> On 9/18/19 5:00 PM, Hohensee, Paul wrote:
>> They all implement com.sun.management.ThreadMXBean, so adding a
>> getCurrentThreadAllocatedBytes broke them. Potential fix is to give it
>> a default implementation, vis
>>
>> public default long getCurrentThreadAllocatedBytes() {
>> return -1;
>> }
>>
>
> com.sun.management.ThreadMXBean (and other platform MXBeans) is a
> "sealed" interface which should only be implemented by JDK.
Didn't realize that. I don't recall knowing about PlatformManagedObject.
Sealed types will at least allow this to be enforced, though I have to
wonder what the tests are doing here.
> Unfortunately we don't have the sealed type feature yet. Yes it needs
> to be a default method. I think it should throw UOE.
>
> * @implSpec
> * The default implementation throws {@code
> UnsupportedOperationException}.
>
> The @throw UOE can make it clear that it does not support current thread
> memory allocation measurement.
Yes that seems a reasonable default if we don't want this to be
implemented outside the platform.
Thanks,
David
> Mandy
More information about the serviceability-dev
mailing list