On 3-Jan-10, at 8:31 PM, Bill Bumgarner wrote:

On Jan 3, 2010, at 2:45 PM, Graham Cox wrote:

On 04/01/2010, at 4:59 AM, Michael Abendroth wrote:

When I write something like:

while (true) {
NSString *s = [[NSString alloc] initWithString:@"applejuice"];
}

Will s be garbage collected? If not, how can I make sure it does get
deallocated by garbage collection.


As written, it's academic, as your program will never proceed beyond this point, and will eventually crash with an out of memory error.

In Leopard, definitely.

In Snow Leopard, maybe not. It is a rather contrived test case, but it is much more difficult to outrun the collector in Snow Leopard than it was in Leopard.

Bill, I for one would like to hear a bit more about this. What has changed in SL? Why would it ever be possible to outrun the collector? If the limit of memory is being reached, can't it always just do an immediate, synchronous collection before the call to +alloc returns? I'd love to have a better understanding of what's going on under the hood here...

Ben Haller
Stick Software


_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to