• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: memory problem, advice needed
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: memory problem, advice needed


  • Subject: Re: memory problem, advice needed
  • From: Sean Murphy <email@hidden>
  • Date: Sat, 1 Apr 2006 01:40:05 -0500

On Apr 1, 2006, at 12:40 AM, Paul Gribble wrote:

Here’s a skeleton of my situation:

for (i=1; i<1000; i++) {
    int myResult;
    myResult = myFun(someInput, someMoreInput);
}

then within myFun() the following sorts of things happen:

 NSArray *myBigArray = [NSArray arrayWithObjects: mySmallArray1,
mySmallArray2 ,nil];

How do I ensure that when myFun() ends, myBigArray is released?

Hi Paul,

You can create an additional NSAutoreleasePool as Kevin mentioned previously, which means you would have to release the pool itself at the end of myFun(). This might degrade performance, however, since myFun() is called 1000 times, and extra work would be done each time creating and releasing the pool. Not creating your own autorelease pool will not cause a memory leak, but it will wait until the event loop is over and free all 1000+ objects then.

With much less code, you can just handle the memory allocation and release of myBigArray yourself (without using autorelease pools) by simply doing this:
NSArray *myBigArray = [[NSArray alloc] initWithObjects: mySmallArray1, mySmallArray2, nil];
// rest of myFun() code here...
[myBigArray release];
return someInt;


Important to note is the fact that releasing the myBigArray within myFun() assumes it will not be returned, and not used by the for loop calling the myFun() method.

The [anArray array...] methods are called factory methods are shortcuts which create an already autoreleased object for you, meaning less code.

Good luck!

-Sean _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Re: memory problem, advice needed (From: Paul Gribble <email@hidden>)

  • Prev by Date: Re: memory problem, advice needed
  • Next by Date: Re: finding substring
  • Previous by thread: Re: memory problem, advice needed
  • Next by thread: vImage crop?
  • Index(es):
    • Date
    • Thread