Re: limiting CPU usage
Re: limiting CPU usage
- Subject: Re: limiting CPU usage
- From: Murat Konar <email@hidden>
- Date: Fri, 30 Nov 2007 13:07:33 -0800
On Nov 30, 2007, at 12:19 PM, Alexander Cohen wrote:
What im doing is pretty simple. I have a loop that for each
iteration, opens an image, gets some info, then closes it down
( using CG of course ). Everything is released correctly and there
are no leaks. BUt after a while, the system gets unresponsive.
But *when* are things being released?
A common problem when running in a loop is that objects that are
autoreleased (so-called temporary objects) aren't actually
deallocated until the end of the current run-loop. Often, these
temporary objects aren't ones you've created; they're created as a
side effect of code that you're calling.
You can avoid the build-up of temporary objects by using your own
auto-release pool thusly (typed in Mail, this is just pseudo code to
illustrate the concept):
NSAutoreleasePool * autoreleasePool = [[NSAutoreleasePool alloc]init];
while (keepLooping)
{
do stuff...
if (number of loops since the last time we released the
autoreleasePool is above some threshold)
{
[autoreleasePool release];
autoreleasePool = [[NSAutoreleasePool alloc]init];
}
}
[autoreleasePool release];
How often you release the autorelease pool depends on how memory
heavy your operations are.
_murat
_______________________________________________
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