64bit versus 32bit


Please don’t start a flame war over this.  It is meant as more of a Dilbert-style post with just the slightest bit of real technical content.

64-bit machines are twice as fast as 32-bit machines because they have more bits.

Believe it or not there are still some people inside and outside Microsoft that believe this.  They’re probably the same folks that believe a 4GHz P4 is twice as fast as a 2GHz P4.  Wouldn’t it be nice if all that was really true?

I really do love my 64-bit machines.  One of them I run with a 32-bit OS, the other with a 64-bit OS.  They’re both really fast at real world developer tasks despite their seemingly slow clocks.  They’re not twice as fast, but they might be if you figure out a way to factor in their inherent disadvantage: all the pointers are twice as big.  Depending on your data structures, that could be a pretty big disadvantage.

–Grant

Comments (11)

  1. Jerry Pisk says:

    4 GHz P4 is twice as fast as 2 GHz P4, why wouldn’t it be?

    On the 64-bit issue – are you serious? There are people who think that? LOL

  2. No no, it’s wrong. Because you have twice as many bits the computer will take twice as long to do everything.

    So my ZX Spectrum owns your ass 😀

  3. Grant says:

    My memory doesn’t run at even 1Ghz, so most of the time a 4GHz P4 (even with Hyperthreading) really just waits for memory (or disk) faster. If you don’t believe me, install your favorite profiler and see how much time the average app takes in processor stalls or waiting for something.

    –Grant

  4. Sahil Malik says:

    4Ghz P4? Do you have friends at intel or is your computer room unreasonably warm?

  5. Jerry Pisk says:

    Grant – agree, but you’re comparing apples and oranges. The CPU is twice as fast, however in reality you won’t be able to use all that extra speed due to other components. But you didn’t say a system with twice as fast CPU 😉

    And for Barry’s comment – not exactly. The CPU internaly moves 64 bits instead of 32, so to load one instruction will take the same time. To load a 4KB memory page will take the same time as well. The speed at which a pointer is loaded depends on the CPU <-> RAM bridge, not on the CPU itself, but there you’re probably most right, it’s probably going to take twice asd long to load a single memory pointer. The same applies to code, the actual compiled code will be roughly twice as large (since instructions and memory addresses double) so it will take twice as long to load an app and it will take up twice as much RAM as on the 32-bit system. However, if this is an issue to you then you’re not working on a system that would see any gain from a 64-bit architecture anyways. Switching to 64-bits makes sense when you have the need to address more than 4GB of RAM, we’re talking machines with tens and tens of GB of RAM.

  6. Actually, Jerry, Grant’s actually right – a 2GHz P4 is not half as fast as a 4GHz P4, even at raw clock speeds.

    Intel (and AMD) have been playing games with CPU speed since they introduced the 386DX processor – the CPU speed reported by Intel has very little relationship with the external speed of the computer.

    Personally I think that the AMD64 may be the single greatest marketing device in computing EVER (and no, I won’t go further than that in public).

  7. Grant says:

    Well said. Now we just have to get rid of those who insist on on-size-fits-all computing.

    –Grant

  8. Actually Jerry I was kind of kidding 🙂

    I hate to admit it, but Apple’s constant cries of "Clock speed doesn’t matter" is pretty much correct.

    These days Mhz is marketing.

  9. Jerry Pisk says:

    The issue of almost everything being double (memory-wise) is a very real issue when moving to 64-bit platform. Pointers are twice as big, instructions are twice as big, pretty much everything is (except int in .Net).
    <br>
    <br>As for the CPU speed having little to do with the overall speed – that’s what I said, but the CPU itself processes instructions twice as fast if its clock is running twice as fast, don’t it? Of course there might be a memory/cache bottleneck so the CPU has to wait for instructions to arrive but the actual execution time is linear to the CPU clock, isn’t it?
    <br>
    <br>And I would say clock speed does matter, just not the internal CPU clock 🙂 But FSB clock matters a lot and so does the internal bus (PCI vs. AGP vs. PCI-Express vs. PCI-X and so on). The problem is that all the slow peripherals render the CPU speed irrelevant.
    <br>
    <br>And there’s one thing I don’t get abour AMD64 – to get its full potential you have to recompile your code as 64-bit code. But once you do that you just go ahead and switch to a real 64-bit platform, right? So what’s the point of AMD64?

  10. Fortunately, Intel is finally giving up the MHz game… newer Pentium Ms don’t even have their clock rate in their model name. My PM 1.5 beats my P4 2.26 in every CPU benchmark.

    Another caution with 64-bit is that pointer-heavy data structures become twice as large, and could cause you to really need the larger RAM capacity…

    64-bit is still intriguing, especially pure-64-bit chips like Itanium, since their radically different architectures could mean all kinds of neat optimizations are possible 🙂

Skip to main content