x64 vs x86.. surprising results in performance (x86 better)?

Discussion in 'Windows 64 Bit' started by markm75, Jan 8, 2008.

  1. markm75

    markm75 Guest

    I could have sworn that previous things i had read, stated that running x64
    vista was generally 5-20% slower than the x86 version?

    I ran some recent tests on my hardware with PerformanceTest v6.1 (an x86
    version and x64 version)...

    My base computer is a 1.86GHZ dual core with 4gb memory and a geforce 8600GT
    pci-e x16 card.. the harddrives are all SATAII.

    I kept the software set identical on each machine, each machine was bare
    formatted and then only a handful of apps installed.. same configs on each:

    My basic Passmark rating on x86 was 472.2 and 575.1 on x64 (so x64 was 17.9%
    better overall).


    I did the run all tests option (and clicked cancel when it tried to test the
    Cdrom)... The x86 lagged behind the x64 in all areas except CPU find prime
    numbers, CPU string sorting.. Disk sequential read (so in these 3 categories
    the x86 version performed better)...

    I'm guessing that x86 probably has better load times on apps, hence the
    whole 20% better with x86 type statements, but not really regarding overall
    peformance?

    Anyone have any thoughts?



    Thanks
     
    markm75, Jan 8, 2008
    #1
    1. Advertisements

  2. No one here should have told you x64 was slower. Oh, it _might_ be very
    slightly for a 32-bit app, depending on the app. But in most cases it will
    be faster or the same even for 32-bit apps. The single biggest reason is the
    I/O subsystem, which is 64bits wide and faster accessing the disks. But
    overall? I would definitely expect x64 to be faster or the same on
    indentical hardware. (and note that while you only have 4GB of RAM, x64 will
    let you use all of it. x86 will not. And you can generally go up to 8 GB of
    RAM on a typical DDR2 or DDR3 motherboard - 32-bit Windows is NOT going to
    see any of that RAM past 4GB.)
     
    Charlie Russel - MVP, Jan 8, 2008
    #2
    1. Advertisements

  3. markm75

    jabloomf1230 Guest

    Those are 3DMark06 artificial benchmarks, but unfortunately the URLs
    don't work for me, prolly because I have to be logged in as you to see
    your the project details. Post the SM 2.0, SM 3.0 and CPU test results
    and maybe we could figure out what's going on. You do realize that
    Futuremark does not officially support x64 Windows in any flavor, don't you?

    In any case, the key work here is "artificial". 3DMark06 is a nice tool
    for tuning your system, but it is not always a good predictor of real
    world performance in specific games, etc.. My personal experience (both
    with XP and Vista) is that the 32 and 64 bit versions of each OS perform
    about the same with 3DMark06. You have to use the same video driver
    version and keep everything else constant. When Vista first was
    released, it was significantly slower than XP (again both 32 and 64 bit
    versions), but as the video drivers improved and Vista was patched,
    there is very little difference in performance, at least using 3DMark06
    as the yardstick.
     
    jabloomf1230, Jan 9, 2008
    #3
  4. "about the same" is what I'd generally expect. Any benchmark that is highly
    disk I/O centric, however, I'd expect to be faster in XP x64.
     
    Charlie Russel - MVP, Jan 9, 2008
    #4
  5. Dear Charlie:

    I'm a compiler writer. I spent about 8 months porting a 32-bit compiler
    to 64 bits a year-and-a-half ago. My software is used for
    discrete-event simulation, which is almost always 100% CPU-bound and
    does lots of list processing and logic, and a modest amount of floating
    point. In my experience, these applications generally run roughly 6-7%
    slower in 64-bit mode, compared to 32-bit mode. Since pointers are
    twice as wide, it's understandable that heavy list-processing might be
    slower.

    I also do some 3D graphics work that's long on linear algebra. While I
    haven't done any benchmarking, I've stepped through a lot of X87 code.
    I've seen instances in which C++ (Visual Studio 2005) falls all over
    itself trying to intelligent floating point register allocation. I
    surmise that using SSE floating point arithmetic (required under X64)
    would result in much cleaner code generation; however, since I have no
    need to go to 64 bits, that's just a guess on my part.

    In addition, almost all math/trig functions are done in software in
    64-bit mode, where many of these can exploit X87 built-in instructions
    in 32-bit mode. Some of the 64-bit software math/trig functions are
    faster than their hardware-based 32-bit equivalents, and vice versa, and
    of course, performance varies from chipset to chipset.

    As we all know, the bottom line is to look before you leap and benchmark
    the kind of code that's near and dear to you.

    Regards,
    Jim
     
    Jim Henriksen, Jan 9, 2008
    #5
  6. And yet, many who have moved to 64bit have found that the extra registers
    make their software noticeably faster, even when memory isn't an issue.

    Yes, it matters what the application does, and how it uses what's in the
    processors. There will be applications on both sides of the divide, but
    overall? I think we'll see increasing improvements as the quality of the
    software for 64bit improves.
     
    Charlie Russel - MVP, Jan 9, 2008
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.