Fel, fel, fel. Nigel Page på Microsoft Australia har försökt förklara systemkraven hos nästkommande version av deras operativsystem (Windows Vista) och särskilt hur mycket extra RAM en x86-64-burk drar jämför med en vanlig x86-32.
Sanningen är att programkoden tar mer plats (bredare instruktioner) och alla pekare drar 8 bytes istället för 4 (64-bitars addressrymd). Datan däremot, som typiskt ockuperar den absolut största delen av detta nämnda gigabytestora RAM, drar inte per automatik mer utrymme.
C-perspektivet (för x86-64, andra 64-bitars plattformar beter sig annorlunda): En
int är fortfarande 4 bytes bred. En float, double eller long double är lika stora som i 32-bitars fallet. En long är fördubblad, 8 bytes istället för 4. Så visst, om någon programmerare strött long's över hela sin kod, använder dom som 32-bitars data och kompilerar om rubbet för x86-64 så drar programmet mycket riktigt onödigt mycket RAM. En bugg.Dubbel faktiskt datamängd fås bara om programmet anpassas till att använda dubbla ordstorleken på 64-bitars diton med vetskap om att ALU:n fixar beräkningen på samma tid. Man vill åt dubblerad heltalsprecision. Sådana program kommer vara ytterst sällsynta, istället ser man till att programmet kompileras med
long long mot x86-32 och long mot x86-64, vilket ger samma uppförande på båda plattformar med bonusen i 64-bitarsfallet att beräkningarna sker fortare. Nej, ska man verkligen dra nytta av sina extra bitar använder man den bredare ALU:n till att bearbeta samma data på halverad tid. Till samma RAM-kostnad. Kika på GNU MP för ett exempel (en bignum-implementation).Notera att Java, Mono och .NET inte gör skillnad på de inbyggda datatypernas storlekar mellan 32- och 64-bitars plattformar. En
long är alltid 8 bytes stor. Körs programmet på en 64-bitars maskin kan VM:en utföra en long + long addition i en instruktion. Till samma RAM-kostnad.Så lugn i stormen, om du verkligen behöver dubblera RAM-minnet för att rulla Vista på din x86-64-maskin kanske du borde fundera på hur välskrivna de program (och det OS) du kör är. Fundera är väl det ända som återstår att göra, när inte källkoden finns tillgänglig för dig eller någon annan nyfiken själ att glutta på.