C# Garbage Collection Failure

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

C# Garbage Collection Failure

Jon Hylands

Thought this was interesting... I guess they should have used something
with a more mature garbage collector...

http://robots.net/article/2400.html

Later,
Jon

--------------------------------------------------------------
   Jon Hylands      [hidden email]      http://www.huv.com/jon

  Project: Micro Raptor (Small Biped Velociraptor Robot)
           http://www.huv.com/blog

Reply | Threaded
Open this post in threaded view
|

Slashdot Editorial Failure [Re: C# Garbage Collection Failure]

Joshua Gargus-2
Yet another Slashdot editorial failure.  As the article clearly  
states, there was a bug in the Princeton team's code, not in the C#  
garbage collector.  Their obstacle-detection code retained references  
to objects that they should have released for garbage collection.  
The whole article is an advertisement for a memory-profiling tool;  
the title of the submission was probably chosen to take advantage of  
Slashdot's knee-jerk anti-Microsoft bias.

Josh


On Nov 18, 2007, at 4:55 PM, Jon Hylands wrote:

>
> Thought this was interesting... I guess they should have used  
> something
> with a more mature garbage collector...
>
> http://robots.net/article/2400.html
>
> Later,
> Jon
>
> --------------------------------------------------------------
>    Jon Hylands      [hidden email]      http://www.huv.com/jon
>
>   Project: Micro Raptor (Small Biped Velociraptor Robot)
>            http://www.huv.com/blog
>


Reply | Threaded
Open this post in threaded view
|

Re: C# Garbage Collection Failure

Rob Withers
In reply to this post by Jon Hylands
>From http://www.codeproject.com/showcase/IfOnlyWedUsedANTSProfiler.asp:
    "because the objects were still registered as subscribers to an event,
they were never getting deleted"

Ah, yes.  Good thing we use weak references to subscribers.

Cheers,
Rob

----- Original Message -----
From: "Jon Hylands" <[hidden email]>
To: <[hidden email]>
Sent: Sunday, November 18, 2007 4:55 PM
Subject: C# Garbage Collection Failure



Thought this was interesting... I guess they should have used something
with a more mature garbage collector...

http://robots.net/article/2400.html

Later,
Jon

--------------------------------------------------------------
   Jon Hylands      [hidden email]      http://www.huv.com/jon

  Project: Micro Raptor (Small Biped Velociraptor Robot)
           http://www.huv.com/blog



Reply | Threaded
Open this post in threaded view
|

Re: C# Garbage Collection Failure

Bert Freudenberg

On Nov 19, 2007, at 2:05 , Rob Withers wrote:

>> From http://www.codeproject.com/showcase/ 
>> IfOnlyWedUsedANTSProfiler.asp:
>    "because the objects were still registered as subscribers to an  
> event, they were never getting deleted"
>
> Ah, yes.  Good thing we use weak references to subscribers.

You never had to clean up an image that got larger and larger for no  
apparent reason?

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: C# Garbage Collection Failure

Rob Withers

----- Original Message -----
From: "Bert Freudenberg" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Sunday, November 18, 2007 5:34 PM
Subject: Re: C# Garbage Collection Failure


>
> On Nov 19, 2007, at 2:05 , Rob Withers wrote:
>
>>> From http://www.codeproject.com/showcase/ IfOnlyWedUsedANTSProfiler.asp:
>>    "because the objects were still registered as subscribers to an
>> event, they were never getting deleted"
>>
>> Ah, yes.  Good thing we use weak references to subscribers.
>
> You never had to clean up an image that got larger and larger for no
> apparent reason?

I certainly have, as recently as last week, when working with promises and
eventual sending that goes into the weeds.  It's not always easy to track
down the source of these things.

However, in the specific case they talk about, objects registered as
subscribers, Squeak uses WeakMessageSends for event registration, so this
isn't a problem.  See the implementation of #when:send:to:.  When all other
references to a subscriber are dropped, it is GCed ok.  Furthermore, the
action sequences clean up themselves whenever there is a new registration:
see #asMinimalRepresentation and it's senders.

Cheers,
Rob