Re: Running out of process VM
Re: Running out of process VM
- Subject: Re: Running out of process VM
- From: John Stiles <email@hidden>
- Date: Thu, 13 Apr 2006 17:08:37 -0700
On Apr 13, 2006, at 5:02 PM, M. Carlson wrote:
On Thu, 13 Apr 2006 15:41:05 -0700 Shawn Erickson wrote:
It has to do with contiguous allocation in your virtual address
space.
You are asking for a large allocation which by definition must be
contagious in virtual addresses yet your virtual address space don't
have a free range of such addresses available.
So, I should consider myself lucky to get even my 1.1 GB contiguous
VM, depending on what I have running on my system... If I kill
Safari, with its now 2.68 GB VM, it could possibly succeed? How
about first thing after a reboot? I guess the issue is really that
even with a 64-bit VM address space, there's no guarantee even then
that it would succeed. Maybe some sort of VM recompaction is due in
OS X (Leopard)?
No, you misunderstand. Every app gets its own, unique 4GB block of
"virtual" space. Safari's 4GB block doesn't interfere with your 4GB
block.
It's parceled out in a lot of ways before you even hit main(). For
example, Carbon and Cocoa are loaded in there somewhere (I think it
used to be at 0x90000000 but I don't know where it is any more).
That's why you can't get more than ~2.5GB of space to yourself; a lot
of it is reserved by things that are out of your control.
As you make allocations and free them, you could fragment your 4GB
space, just like a fragmented hard disk. In that case, large
allocations may fail even when smaller allocations succeed; this is
because there are tiny blocks of memory scattered throughout your 4GB
zone, getting in the way.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden