On 12-Mar-09, at 11:43 AM, Bill Bumgarner wrote:
On Mar 12, 2009, at 8:32 AM, Karl Moskowski wrote:If I add something like this to the method's processing loop if (++block % 1000 == 0) objc_collect(OBJC_EXHAUSTIVE_COLLECTION); memory usage stays reasonable in the Cocoa app.I've tried other options in various combinations (e.g. objc_collect(OBJC_COLLECT_IF_NEEDED) and objc_clear_stack(OBJC_CLEAR_RESIDENT_STACK)), but only the above seems to help.Any idea why GC seems to work automatically in a Foundation tool, but in a Cocoa app it sometimes needs manual invocation?It sounds like the main event loop isn't running and triggering collections properly.What happens if you kick it off and, say, click semi-spastically on the app's menu bar when it would otherwise die?If the memory use stays reasonable, that is exactly what is happening. If not, the workaround above is what would be recommended.(This is a known issue -- if you search the archive, you'll find others have encountered it.)Though known, feel free to file a bug. Knowing how many customers encounter a particular issue is very useful.
It looks like that is what's happening. I was launching the Cocoa app, picking the file from a menu item and letting it go while watching Activity Monitor. I just tried it with the objc_collect() commented out and periodically clicked a menu item; GC kicked in automatically every time.
I'll leave the objc_collect(OBJC_EXHAUSTIVE_COLLECTION) in, unless there's a better way.
Thanks, Bill. ---- Karl Moskowski <kolpa...@voodooergonomics.com> Voodoo Ergonomics Inc. <http://voodooergonomics.com/>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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/archive%40mail-archive.com This email sent to arch...@mail-archive.com