Re: Release vs. autorelease
Re: Release vs. autorelease
- Subject: Re: Release vs. autorelease
- From: "I. Savant" <email@hidden>
- Date: Mon, 12 Jan 2009 15:13:59 -0500
On Mon, Jan 12, 2009 at 2:53 PM, Robert Marini <email@hidden> wrote:
> Autoreleased objects have the trigger of a release delayed until the
> autorelease pool is "drained."
... which may or may not be at the end of the current run loop.
There are a lot of "ifs" to consider, which are explained in the
documentation.
> ... and, really, is there a good reason to
> keep things in memory longer than they need to be?
Sure! What about batch-processing 10,000,000 items? :-) On the one
hand, creating all 10,000,000 items and leaving them in memory is
likely to kill something most efficiently, but on the other, calling
-release on each item when they're done may* be costlier than
batch-releasing them by implicitly draining the pool every 1000, or
500, or 10, or so.
* I say 'may' because this isn't necessarily the case, but is most
likely for any but the most trivial applications / data models.
Consider creating 10,000,000 objects, each one of which references
about twenty other objects, or contains a large blob of binary data
(like an image).
Overall, this question is difficult to ask because it's pretty
general. The real answer is: it depends entirely on the situation.
Implement it, performance test it, than adjust it if necessary.
--
I.S.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden