Skip navigation.
 
mlRe: In-loop releasing of objects does not free memory?
FROM : Randall Meadows
DATE : Thu Feb 14 17:31:02 2008

On Feb 14, 2008, at 1:43 AM, Arthur C. wrote:

>> I think a better way to explain this would be, "try wrapping the 
>> body of > the loop in an autorelease pool."

> That did the job. It is simple:
> { // loop
>  NSAutoreleasePool * loopPool = [[NSAutoreleasePool alloc] init];
>  <do various things>
>  [loopPool release];
> }
>
> Indeed, there were autoreleased objects created in the loop that I 
> didn't consider.


In theory, a better way to do this would be:

NSAutoreleasePool * loopPool = [[NSAutoreleasePool alloc] init];
{  // loop
  <do various things>
  [loopPool drain];
}

But I have to admit, I recall having an issue where drain: didn't seem 
to work very well, so I ended up doing exactly what you did.  It 
didn't seem to be a performance issue for me, so I didn't take the 
time to investigate why drain: didn't work; it bugged the crap out of 
me to be creating an object like that every time through the loop, but 
I had more pressing things to deal with.

Anyone else noticed this behavior with drain: or otherwise have an 
explanation?

Related mailsAuthorDate
mlIn-loop releasing of objects does not free memory? Arthur C. Feb 12, 23:10
mlRe: In-loop releasing of objects does not free memory? j o a r Feb 12, 23:20
mlRe: In-loop releasing of objects does not free memory? John Terranova Feb 13, 01:22
mlRe: In-loop releasing of objects does not free memory? John Stiles Feb 13, 01:33
mlRe: In-loop releasing of objects does not free memory? John Terranova Feb 13, 02:10
mlRe: In-loop releasing of objects does not free memory? Shawn Erickson Feb 13, 17:57
mlRe: In-loop releasing of objects does not free memory? Shawn Erickson Feb 13, 18:07
mlRE: In-loop releasing of objects does not free memory? Arthur C. Feb 14, 09:43
mlRe: In-loop releasing of objects does not free memory? Randall Meadows Feb 14, 17:31
mlRe: In-loop releasing of objects does not free memory? Uli Kusterer Feb 14, 20:49
mlRe: In-loop releasing of objects does not free memory? Nick Zitzmann Feb 14, 21:12
mlRe: In-loop releasing of objects does not free memory? Randall Meadows Feb 14, 21:54
mlRe: In-loop releasing of objects does not free memory? Michael Watson Feb 14, 22:00
mlRe: In-loop releasing of objects does not free memory? Keith Duncan Feb 14, 22:22
mlRe: In-loop releasing of objects does not free memory? John Stiles Feb 14, 22:39
mlRe: In-loop releasing of objects does not free memory? Uli Kusterer Feb 15, 00:22
mlRe: In-loop releasing of objects does not free memory? Charles Steinman Feb 15, 00:56
mlRe: In-loop releasing of objects does not free memory? Jim Correia Feb 15, 04:57
mlRe: In-loop releasing of objects does not free memory? j o a r Feb 15, 05:36
mlRe: In-loop releasing of objects does not free memory? Jim Correia Feb 15, 14:41
mlRe: In-loop releasing of objects does not free memory? glenn andreas Feb 15, 16:28
mlRe: In-loop releasing of objects does not free memory? Adam P Jenkins Feb 15, 17:27
mlRe: In-loop releasing of objects does not free memory? Jim Correia Feb 15, 18:15
mlRe: In-loop releasing of objects does not free memory? j o a r Feb 15, 18:15
mlRe: In-loop releasing of objects does not free memory? Adam P Jenkins Feb 15, 19:56
mlRe: In-loop releasing of objects does not free memory? Keith Duncan Feb 15, 21:07
ml[Foo new] vs [[Foo alloc] init]: was Re: In-loop releasing of objects does not free memory? Adam P Jenkins Feb 15, 21:41
mlRe: [Foo new] vs [[Foo alloc] init]: was Re: In-loop releasing of objects does not free memory? Bill Bumgarner Feb 15, 21:57
mlRe: [Foo new] vs [[Foo alloc] init]: Keith Duncan Feb 15, 22:11
mlRe: [Foo new] vs [[Foo alloc] init]: Sean McBride Feb 15, 22:18