Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: limiting CPU usage




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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >limiting CPU usage (From: Alexander Cohen <email@hidden>)
 >Re: limiting CPU usage (From: Thomas Davie <email@hidden>)
 >Re: limiting CPU usage (From: Alexander Cohen <email@hidden>)
 >Re: limiting CPU usage (From: Murat Konar <email@hidden>)
 >Re: limiting CPU usage (From: Alexander Cohen <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.