Re: Immediate memory release
Re: Immediate memory release
- Subject: Re: Immediate memory release
- From: Joseph Kelly <email@hidden>
- Date: Tue, 29 Apr 2008 07:50:02 -0700
You have no guarantee that a method like -initWithContentsOfFile: is not going to add many allocations to the autorelease pool (which probably exists at your top runloop). In my code, in places that sit in tight processing loops, I've had to create an autorelease pool at the top of the loop which I release at the end of the loop (i.e. each iteration has gets a fresh pool).
The Debugging Magic technote describes how to monitor the autorelease pool by setting watermark levels. You'd be surprised at exactly how many objects Cocoa allocates in typically ordinary operations. http://developer.apple.com/technotes/tn2004/tn2124.html
Joe K.
On Tuesday, April 29, 2008, at 06:32AM, "Yannick De Koninck" <email@hidden> wrote:
>Hi everybody,
>
>I am writing an application where, at some point in time, the user
>clicks a button and for a great amount of images the average pixel
>values are calculated and stored in an array.
>Basically this looks like this:
>
>-(IBAction)Generate:(id)sender
>{
>
> // some code
>
>for (i = 0; i < count; i++)
> {
> NSImage* tempSource = [[NSImage alloc]
>initWithContentsOfFile:sPath[i]];
> // some code
> [tempSource release];
>}
>
>}
>
>
>When debugging with ObjectAlloc i found that the memory release does
>not happen when the release message is sent but only after the
>Generate function is done. So instead of allocating, deallocating,
>allocating, deallocating... the application keeps allocating memory
>and only releases it afterwards. This becomes a big problem when the
>amount of loaded pictures rises. Is there a way to force the memory
>manager to free the memory when the release message is sent instead of
>after the call? Or can i solve this problem in another way?
>Thank you very much,
>Yannick, Belgium
>_______________________________________________
>
>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
>
>
_______________________________________________
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