July 16, 2010
On Fri, 16 Jul 2010 02:41:17 +0300, Nick Sabalausky <a@a.a> wrote:

> I have 1GB. (And I get by just fine.)

The discussion wasn't about physical memory, but address space. Due to the discussed limitation, you won't be able to fill all of that 1 GB with small VirtualAlloc'd objects because you'll run out of address space much earlier before you run out of memory. Having more address space than physical memory can thus sometimes be beneficial (also e.g. for virtual memory).

-- 
Best regards,
 Vladimir                            mailto:vladimir@thecybershadow.net
July 16, 2010
> Yea, but I wonder how much longer it is going to be before 32-bit is dead as a
> dodo except on things like netbooks.

it "consumes" (leaves holes useable by others) to much memory because of the allocation strategie - that is also a problem under 64bit

July 16, 2010

Vladimir Panteleev wrote:
> On Fri, 16 Jul 2010 01:20:07 +0300, Rainer Schuetze <r.sagitario@gmx.de> wrote:
> 
>> There is only 2GB virtual memory available (3GB with some tweaks)
> 
> The allocation granularity doesn't affect virtual memory either (at least according to all Process Explorer indications).

But the alignment requirements disallow allocating memory that fills the wasted address space. I guess even HeapAllocate will use VirtualAlloc as its back end.

> 
> Does this 2 or 3GB limitation only affect 32-bit operating systems? On my 64-bit Windows, with /LARGEADDRESSAWARE, a simple program can do close to 64K (65062 for me) 1-byte VirtualAllocs.
> 

Normal 32-bit processes have 2 GB address space. Processes with /LARGEADDRESSAWARE set in the executable get 3GB on 32-bit OS (XP needs to boot with the /3GB option), and almost 4GB on 64-bit OS.
July 16, 2010
On Fri, 16 Jul 2010 09:19:09 +0300, Rainer Schuetze <r.sagitario@gmx.de> wrote:

> But the alignment requirements disallow allocating memory that fills the wasted address space. I guess even HeapAllocate will use VirtualAlloc as its back end.

Doesn't this apply only to virtual (user-space) memory? If so, then the problem is address space exhaustion as already discussed. The difference is whether any physical memory is wasted, and it doesn't seem to be the case.

-- 
Best regards,
 Vladimir                            mailto:vladimir@thecybershadow.net
1 2
Next ›   Last »