>> I am compiling this program and running it, and without the "release" >> calls there, it certainly is using up more and more memory every >> second. Definitely no garbage collection happening. I then modified >> the GNUmakefile to make sure that the option "-fobjc-gc" was being >> passed to gcc, and verbose output from make assured me that this was >> the case. However, my program sill did not garbage collect (3 gigs of >> RAM, then a segfault). I then tried the gcc option "-fobjc-gc-only" >> and gcc42 reported that it did not recognize that option. The options >> are described here: >> http://developer.apple.com/mac/library/documentation/DeveloperTools/gcc-4.0.1/gcc/Objective_002dC-and-Objective_002dC_002b_002b-Dialect-Options.html > > While I am not very familiar with Objective C, I can tell you that GC > generally runs in the background, using idle time to scavenge memory. > (It's not counted pointers, synchronously freeing memory immediately.) > So if you race to allocate memory in an infinite loop like this, you are > destined to exhaust memory, GC or no, unless the runtime is designed to > force a GC on alloc in low memory conditions. > > Try putting some sort of sleep in the middle of your loop and see if GC > kicks in and you get more of a sawtooth memory usage pattern.
Well thanks for that advice. My new program looks like this: #import "GarbageObj.h" int main(int argc, const char *argv[]) { int inx = 0; while (YES) { inx++; GarbageObj *obj = [[GarbageObj alloc] init]; [obj foo]; if (inx == 100000) { inx = 0; sleep(1); } } return 0; } Unfortunately the memory usage is still steadily increasing. No garbage collection even if I compile with "-fobjc-gc". :-( _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"