The application does go well beyond the 4GB range. By using this implementation I can use 32-bit pointers for most objects (those that do not require <8byte alignment, i.e. chars, etc.) while still have a 32GB address range.
On 7/19/08, Robert Dewar <[EMAIL PROTECTED]> wrote: > Yair Lifshitz wrote: > > Hi, > > > > I hope I'm not flooding with this topic. I've did some research and > > couldn't find anything relevant on this topic. > > My team is developing a large scale CAD application that has a large > > memory footprint, requiring strong machines to run. > > > > The application uses pointers massively. > > During one of our optimization cycles I noticed that since most > > objects are aligned on 8-byte boundaries, it's possible to drop the > > lower 3 bits of the address and reconstruct the full address later. > > > > Basically, as long as the application is in the 32G range (2^32*2^3), > > it's possible to represent aligned pointers using an unsigned int - 4 > > bytes. > > > > why not just run in 32 bit mode in this case? > What's the point of using 64-bit addresses if you > don't need them? >