What does the 8GB limit in GC really mean? Re: libauto: what's "agc error: Can not allocate new region"
What does the 8GB limit in GC really mean? Re: libauto: what's "agc error: Can not allocate new region"
- Subject: What does the 8GB limit in GC really mean? Re: libauto: what's "agc error: Can not allocate new region"
- From: Bill Bumgarner <email@hidden>
- Date: Wed, 02 Dec 2009 13:41:44 -0800
There seems to be some confusion as to what the 8GB limit under GC means. So, a clarification....
The 8GB limit is only on GC based allocations. That is, your app can allocate up to 8GB of GC'd allocations, no more.
There is no such limit on the other allocation zones (the malloc zone, for example).
In practice, applications exceedingly rarely allocate anywhere near 8GB of objects.
Almost every large-memory-use application manages a few hundred megabytes or maybe a gig or two of object allocations with the Very Large Allocations typically living in either the malloc zone, mapped memory, caching mechanisms, or managed via some other means.
In Leopard, the 64 bit collector's zone was 32GB. Given that nothing was using anywhere near that amount of heap in practice, that a zone of that size *does* have a cost in terms of kernel memory (wired) memory use, and there simply aren't very many machines in the world with more than 8GB of RAM, the size of the zone was lowered to 8GB for Snow Leopard.
Obviously, memory prices are falling, CPUs are getting faster, and the # of machines with 8GB+ of RAM will likely rise dramatically in the coming years. There is a bug tracking upping said limit....
b.bum
_______________________________________________
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