These two rfes implement per-thread approximate memory allocation tracking.
6173675 also adds multi-thread-id versions of getThreadCpuTime and getThreadUserTime.

*6173675 M&M: approximate memory allocation rate/amount per thread <http://monaco.sfbay.sun.com/detail.jsf?cr=6173675> **7003271 Hotspot should track cumulative Java heap bytes allocated on a per-thread basis <http://monaco.sfbay.sun.com/detail.jsf?cr=7003271>

*6173675 is the library part, while 7003271 is the Hotspot part.

Webrevs here

http://cr.openjdk.java.net/~phh/6173675/webrev.00/
http://cr.openjdk.java.net/~phh/7003271/webrev.00/

The new file jdk/src/share/classes/com/sun/management/ThreadMXBean.java defines the com.sun.management.ThreadMXBean, a new interface subclassed from java.lang.
management.ThreadMXBean.  The Oracle implementation of ThreadMXBean now
implements c.s.m.ThreadMXBean rather than j.l.m.ThreadMXBean.

Hotspot has been changed to track the total amount of memory allocated by each thread on the Java heap. The total is approximate because it's incremented only when a TLAB (thread-local allocation buffer) is retired, or when an object is allocated directly in eden or the old generation. The implementation of getThreadAllocatedBytes attempts to include the memory allocated within the currently active TLABs, but that's
precise only when the requesting thread is the same as the examined thread.

Some cleanup has been done in both ThreadImpl.java and Hotspot as a side effect of
implementing this change.

Thanks,

Paul

Reply via email to