x64 - x86 memory pointers

Soldato
Joined
18 Oct 2002
Posts
6,372
Location
Bedfordshire
Before you all jump on me this is a slightly different thread!

I know there are some clever chaps on here so i was wondering if you could have a look at the following document for me

http://www.ideateinc.com/whitepapers/all/Inventor - Large Assemblies with x64 Computers.pdf
Take note of where it says "The x64 computer generally requires twice as much RAM to load the same amount of user and program data into memory."

My work college says this is due to memory pointers. Now i know that statement is not entirely true and there are some other mistakes in that article as well (SIMMS anyone). I need to prove my college wrong but i'm having a hard time finding any references on this subject
 
Your friend is pretty much right...

On a 64-bit CPU its native tongue is a 64-bit value... so technically anything compiled for x64 will use plenty of 64-bit pointers and 64-bit values.

But actually this isn't entirely accurate, for many reasons:

The AMD64 instruction set doesn't deprecate the old x86-32 instructions and actually still encourages their use. Therefore many x64 programs that don't need 64-bit arithmetic will still use 32-bit variables to same memory and provide between backward compat.

Most programmers will only use a 64-bit value if they *really* need to. For instance if they just want to store a bit mask of 8 different flags then they will simply use a single byte of memory... why waste a further 7 bytes that will never be used?

Most software even on Windows x64 is still actually 32-bit but running on the WOW64 layer. This software is given the same 4GB VM space and still uses 32-bit variables. So memory usage is unchanged.

The Window x64 kernel and device drivers *are* compiled as 64-bit and because they are so low level and performance sensitive the increased 64-bit word length is used very very frequently. So the memory requirement here does go up a bit.

The theoretical increase is meant to be 100%. But in the real world it is no where even close to that. Although it is increasing as more 64-bit programs emerge, I would estimate at the moment that it is around 15-20%... that is % more memory required over and above a 32-bit system to get an equal performance return.
 
That's what i thought. What i wanted to prove was that it wasn't double and more likely to be around 25% like you said.

However the programme in question, inventor 2009 is native 64bit and can use more than 4GB VM (and will do with big assemblies) so am i'm thinking that this could be closer to 100%?
 
Back
Top Bottom