Re: How do i get a reference count of a object in java ?
dsjoblom@abo.fi wrote On 08/11/06 13:06,:
yogi wrote:
Hi
I have a question related to GC ...
How do i get a reference count of a object in java ?
Suppose i have a Object called MyObject .. i just want to know
programattically , that how many objects are referencing this objcet in
a VM ?
Despite what others have said, yes it is possible:
http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#Heap
If you really need this is another matter. It is probably only useful
if you are writing a debugger or profiler.
Well, you learn something new every day!
Still, the JVMTI stuff doesn't seem to provide a way
to retrieve an object's reference count, since Java still
isn't keeping track of such a thing. The machinery could
be used to compute reference counts on demand (using
IterateOverReachableObjects or one of its brethren, along
with GetTag and SetTag), but two drawbacks seem worthy
of note:
- Object manipulation comes to a halt during the process:
no objects are created, garbage collected, or changed
in any way during the iteration. This implies that the
results must be returned after the fact, by which time
they could be out of date.
- "JVMTI may not be available in all implementations of
the Java[tm] virtual machine."
Nonetheless, thanks for the reference! I've got know
immediate use for it, but it's worth knowing the capabilities
are there should the need arise.
--
Eric.Sosman@sun.com