On 9/19/06, Oliver Deakin <[EMAIL PROTECTED]> wrote:
Robin Garner wrote:
>
>>>
>>> I don't understand. How can weak references help short-lived objects
>>> reclaim?
>>
>> Really what I'm saying is that this is the closest thing we have to a
>> hint to GC that objects can be collected soon - but it is not anything
>> like a proper free() call. There is no immediate reclaim of memory,
>> just the possibility that it will be reclaimed soon - and the object
>> may be garbage collected before you are finished with it!
>>
>> Regards,
>> Oliver
>>
>
> Actually, it's kind of the other way around isn't it ?  Nulling the
> last pointer to an object tells the GC that it can collect it
> (explicitly in the case of reference counting), whereas having a Weak
> Reference to an object says 'please tell me when on-one else wants
> this object', which results in the object staying around even longer.

Isn't this only the case if you register the WeakReference with a
ReferenceQueue?
If you do not do that, then the GC can collect the referent when it
wants, and you will
just get a null back from a get() call on any WeakReference object.
So I imagine that keeping the object weakly reachable and not
registering it with
a ReferenceQueue says to the GC "you are free to collect this referent
object at the
next collection if you wish".

It is always better not to have any references to an object in heap
then to have a WeakReference to it. The object without references is
simply garbage, while WeakReference is a kind of reference to it and
require handling - updating on object relocation, zeroing when object
no longer reachable.

You cannot speedup object memory reclaming having WeakReference to it.
--
Regards,
Ivan

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to