Drew, Try this:
public void foo() { NSArray parents; NSArray children; Enumeration anEnum; EOEditingContext editingContext; // fetch parents anEnum = parents.objectEnumerator(); while (anEnum.hasMoreElements()) { aParent = (Parent)anEnum.nextElement(); editingContext = new EOEditingContext(); children = fetch_with_editingContext(editingContext); // processing... children = null; editingContext.dispose(); editingContext = null; System.gc(); } } ^James > -----Original Message----- > From: > [EMAIL PROTECTED] > ple.com > [mailto:webobjects-dev-bounces+jcl_applewodev=dreamissary.com@ > lists.apple.com] On Behalf Of Chuck Hill > Sent: Sunday, January 06, 2008 1:57 PM > To: Drew Thoeni > Cc: WebObjects-Dev List > Subject: Re: Large Array Clogging > > > > On Jan 6, 2008, at 11:53 AM, Drew Thoeni wrote: > > > I have two tables in a parent-child relationship. Some of the > > parents have a few children (say a few dozen) and others have many > > children (over 100,000). I'm trying to run through the parents and > > pre-calculate some statistics for their children (for example, > > average, mode, standard deviation, etc.). > > I'd be tempted to take a long, hard look at some of the aggregate > functions in Wonder that generate SQL for you. Batch processing is > not EOF's strongest area due to the overhead of object creation and > garbage collection. > > > > All this is working except when I reach a specific parent (#457) > > the processing just hangs. I ran this through debug and it stalls > > at the creation of the array for the children. > > > > However, the system would have already processed a similar size > > array (#30 has 118,000 children) and it seems it's in a loop. > > Activity monitor says the java process is taking 100%. > > > > Other background. I only save the ec after every 20 updates to the > > parent records (to reduce write time). And I use > > ec.invalidateAllObjects() right after saving to clear our memory. > > Rather than do that, I'd create a new EC and just not retain _any_ > references to the objects previously processed, the previous > EC etc. > EOF snapshot counting and Java GC should take care of the rest. > > > > Finally, there is nothing wrong with the data in parent/children of > > #457 as I can start the process there (or a few parents ahead of > > this) and it runs fine. > > > > This seems like a memory problem, but I don't get an out of memory > > exception. > > Before OutOfMemory, there is memory starvation. I think that > is what > is happening to you. Increase the heap size and see if that delays > the problem to a later parent. You could also launch with a JVM > parameter of -verbose:gc to log when GC happens. > > The solution is to clean up your handling of objects and editing > contexts. > > Chuck > > -- > > Practical WebObjects - for developers who want to increase their > overall knowledge of WebObjects or who are trying to solve specific > problems. http://www.global-village.net/products/practical_webobjects > > > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/jcl_appl ewodev%40dreamissary.com This email sent to [EMAIL PROTECTED] _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]