don't replace the "MHz myth" with the "64-bit myth"
Some_Big_Spoon said:
64 bit doesn't double the code or size or something, it refers to the chunks of data the chip/sys can deal with at a given time. a 64 bit native OS would make things faster in all respects, not slower.
Not at all, completely confused.
64-bits refers to the size of the addresses used to find the chunks, not the chunk sizes. 64-bits lets your program deal with more than 4 billion characters, but the normal western character is still only 8 bits - the chunk size does not change.
So, 64-bits does not make it faster - you can address more chunks, but not more in the same clock cycle.
To be more correct, in fact 64-bits will be slightly to almost noticeably slower than 32-bit. Those 64-bit addresses use twice as much space in cache, and need twice as much memory bandwidth to move between RAM and cache.
Most of the time this slowdown won't be noticed, but some programs have data with a large percentage of pointers to other data. In real programs, sometimes the 64-bit version is 10% to 25% slower than the identical source code compiled in 32-bit mode.
"Almost the same speed" is a reasonable thing to say, but
"faster in all respects" amounts to nothing more than
a new MHz myth - try to convince the unaware that bigger is always better.
Some_Big_Spoon said:
The main advantage of 64 bit is the larger mem addressing.
Bingo - but this refers to larger memory available to each application. A Pentium 4 and a Motorola G4 system can have up to 64 GiB of RAM, but each application can only get to 4 GiB.
On a 64-bit machine, each application can use more (much more) than 4 GiB.
The obvious corollary, of course, is that if your application runs fine in 512 MiB or 1 GiB,
there's no reason to move to 64-bit. 64-bit gives you more memory - but if you can't use all the memory that 32-bit gives you then 64-bit won't have any benefit.