Performance of 64-bit vs. 32-bit Windows Dual Core
mikemuch writes "ExtremeTech's Loyd Case has done extensive testing on the same dual-core Athlon X2 4800+ system to explore performance differences between Windows XP Professional x64 and good ole Win32. The biggest hurdle is getting the right drivers. There are a few performance surprises, particularly in 3D games."
The spyware can all be run on one of the cores while the other can be used to get work done. I'm getting one for my father-in-law.
More
Desktop applications (even games) don't need the one thing that 64 bit computing really excels at: massive addressing space. A database server that is compiled to 64 bit code will have access to much more RAM, and thus have much better performance if RAM bound (which many DBs are). Meanwhile for POV-Ray the fastest result of 383 seconds was the 32bit application on 64 OS!
I think that it is safe to hold off on 64 bit for your personal desktop until a larger share of applications are compiled with 64 bit optimizations, but unlike the 16 -> 32 bit shift, I suspect the results will be underwhelming except for extremely memory consuming applications.
Sig under construction since 1998.
http://www.extremetech.com/print_article2/0,1217,a =159811,00.asp
Printable Version
-theGreater.
I can only conclude that they made no attempt to use the extra registers. Of *course* an f'ing 32-bit system will outpace a 64-bit system; Why do you think most Solaris apps are still 32-bit?
The reason why x86-64 is a win is because there are more registers as well. This allows compilers to do a better job.
I still don't understand why someone would need a 64-bit workstation/desktop. What does x86-64 offer you other than the higher price tag? True, AMD-64 rocks in Intel's face, but the performance is gained through a direct memory interface, not by going 64-bit. The tests from TFA shows no difference between running 64-bit and 32-bit applications. If I were to own a x86-64 machine, I bet I'd turn off the 64-bit function to reduce the complexity of running applications.
As I understand it, most users of a 64 bit Linux kernel are using a 32 bit (GNU? I want to avoid a religous war :)) userland, whereas this suggests Windows users can mix and match.
Is there a Linux equivalent available?
Having said all that I well remember getting MS to agree with me that there was a bug in their Win32 bolt on for Win16 that meant my software wouldn't run, but they then said they wouldn't fix it! No wonder I eventually switched to Linux... but that'sa whole other story.
16TB addressable VM Space should be enough for ANYONE.
My little site.
Windows 64 seems to be a good deal. From the benchmarks I looked at, i get the same, if not worse performance than the 32-bloat version. Not bad for $140US.
BTW, I don't know about windoze, but in the Linux world going from 32 bits to 64 bits almost always seems to produce a performance gain of 10->20%. I personally tried a simulator I'm using with 64 bits (recompiled with gcc), and got a speedup of 12%.
The Raven
Boy am I glad all the marketing hype helped make 64-bits a reality! Whew, I can sleep now.
https://www.accountkiller.com/removal-requested
From what I've been able to understand from other people that know a lot about this than me. The main gain in going from the classic 32bit x86 architecture to the AMD64/x86-64 is that they bring into play some of the things learned from the RISC architecture. Lots of registers that can be used instead of the much slower main memory. The speed comes not from the 64bit wide bus but from being able to use this very fast registers to hold and pass information. So until compilers optimize for using registers instead of the stack, then little will be gained except for higher memory requirements.
A few months ago I bought a new AMD 64-bit processor and mother board. I installed XP Professional 64-bit edition, but the wireless MS mouse and keyboard I had wouldn't work. I couldn't find 64-bit drivers anywhere on MS's site, so I gave them a call. The person on the phone told me the keyboard and mouse wouldn't work with XP 64 and suggested I try another operating system. I asked if she recommmended Red Hat or Gentoo, but she just said, "No comment. Is there anything I can help you with?"
None of thes programs they tested showed any significant difference, but scientific benchmarks seem to show significant improvement. Much smaller, but still detectable improvement in xvid/divx encoding. The 64-bit version of CINEMA 4D also benefits significantly in most cases (page 11).
A 32-bit application that has any remaining 16-bit code won't run, because WOW64 doesn't support any 16-bit code.
;)
Hooray, it's about time. Further in the same paragraph:
"Program Files" is reserved for 64-bit apps, while "Program Files (x86)" is for 32-bit software. This will sometimes result in strange installer behavior, as with Steam, Valve Software's game download application. Steam insisted that the parentheses in "Program Files (x86)" were illegal characters, and refused to install. You can either install Steam into a different folder (e.g., \games\valve) or change the folder name in the installer to "Progra~2\valve".
Some things never change...
The filesystem is the package manager
I've been messing around with Windows long enough to remember the 16bit to 32bit application jump made many years ago (When Windows NT 3.1 came out). A lot of the same stuff was said, lack of 32bit apps, huge memory requirements (32 MB of memory!), poor driver support (not that 16bit windows was a lot better). Windows on Windows is nothing new, you still use WOW32 when access a 16bit app in XP.
The world isn't run by weapons anymore, or energy, or money. It's run by little ones and zeroes, little bits of data.
"Dual core" and "dual processor" are two very different things.
but I figure this is the only place I can get a good answer. I was just getting into computers during the 16-32 bit shift, windows 95 etc. (I was 14) How come a new proccesor wasn't required like now? Whats the difference? No need for complete laymans terms, as I consider myself a pretty avid comptuer geek, but certainly no engineer.
Most obvious are char * fields. If the string is 8 characters or less, it is cheaper to just store in the structure (and pass by value, where possible).
Considering, that most such strings (and substructures) are malloc-ed (with a couple of pointers worth of malloc's overhead), the case for embedding them becomes even stronger...
In Soviet Washington the swamp drains you.
I have been using a 64-bit userland under Gentoo Linux for over 1 1/2 years. I still have to run some 32 bit apps, like openoffice. It all just works. Of course I have a lot more respect for Gentoo's support ;->
wtf does 'source based' mean? all the stuff you get on a Fedora ISO was compiled at some point.. you just choose the right version (64 bit) and go on your way.
Means that you download and compile your software packages in-situ instead of waiting for your distro of choice to offer packages precompiled for 64-bits systems. Like the parent poster said, a lot of Linux distro don't offer 64-bit binaries (as of yet), but in a source based distro this is a non issue. Zealot my ass.
I've had problems installing and / or running apps in directories with parentheses.
And there we go, the MAIN DIRECTORY for storing the program files uses them! Don't they ever learn? We had the same problems when dealing with Program[INSERT BIG UGLY SPACE HERE]Files. Couldn't PROGRAMS work? And look, it's 8 characters long!
Sheesh... (/rant)
Only if you saw them swap machines. That and all the extra noise generated to cool off the extra CPU.
A "new era", no, it's just an incremental improvement. 32- to 64-bit x86 is going to be far less dramatic than 16- to 32-bit.
DEC Alpha's in the mid 90's were 64bit and Linux went through a fairly large push to clean everything up to work with them.
I think that's one of the reasons why everything works so well with AMD64 today under Linux.
Dual core and dual processor aren't really all that different. The main difference is that dual core has two CPUs on the same die and therefore has shorter distances to travel to the shared memory cache(s). Yes, there's additional glue and such (stuff like shared registers and even some pipeline chunks), but nothing that's a huge fundamental difference.
For that matter, dual core processors often report as two separate processors, which potentially would cause Windows user license violations if you used a dual, dual-core setup. I believe Microsoft has found a way to identify dual-core CPUs before this even became an issue, so a 2x2 should be fine, but it was an issue.
As for the performance numbers for games, I'm not entirely surprised... maybe if games threaded themselves better, but most of the time they don't and that is a waste of an extra CPU (well, ok, some compilers may optimize the code for two CPU use, but I don't think they help much, yet). I would expect performance to be optimal in stuff with lots of independent threads like Web Servers (which usually have many processes running many threads) that don't depend on other hardware (like games, which also are throttled by the GPU).
While the x86 ISA leaves you with hardly any registers, Intel and AMD's chips do register renaming to hundreds of hardware registers - register renaming is something that you do to allow you to have the same logical register in flight many times (it basically eliminates WAR and WAW register hazards, leaving just true communication). However, if the compiler doesn't have logical registers to allocate to variables, it has to spill them to the stack ... and since memory is not renamed, it really doesn't matter if you have powerful register renaming.
In reality, going from 7 to 16 GPR's is not nearly the win you might think it is, To get really excited you need to be talking about 32 or 64 registers. Sure, 32 register is definitely better, however ... going from 7 to 16 is a big deal. I've seen experiments (stuff that's not published yet, unfortunately) showing how the number of dynamic stores/loads decreases more sharply from 7 to 16 than from 16 to 32. Feel free to contradict me with some other study, though.
The Raven
[pedant] Actually, 128 bits can only address the number of atoms in about a billion (american) metric tons of hydrogen, about the weight of a cubic kilometer of water. (6.023 x 10^26 atoms per kilogram x 10^12 kilograms = 6.023 x 10^38 ~= 2^128). 256 bits could probably address every atom in the universe though. (2^256 ~= 10^77). [/pedant]
Interestingly, (to me, anyway), 64 bits can address almost the number of silicon atoms in a typical silicon chip.
Yes, I played the Sims, compiled gcc, ran Python chatterbots, had KDE in maximum eye-candy-mode and ran multiple processes in desktops 1-10, but the day I began trying to render a scene with transparent height-fields and looped ISOsurfaces and detailed meshes with fog media and twin area lamps is the day I discovered a new definition of "hardware performance"!
I believe that's called marketing.
The Raven
Wrong. At least in Athlon 64, both cores have independent 512K or 1MB L2 caches, NOT SHARED. They do, however, share the 128-bit channel to memory.
I work with both dual processor and dual core Athlon 64 / Opteron systems and in terms of performance at the same clock speed and memory timing, there isn't much difference. If anything, the dual core is faster.
By the way, since when does a tight loop lock up a machine? That thread would have 100% CPU utilization, but you can certainly context switch to a higher or equal priority task. Maybe Windows doesn't work that way (?), but I've never had this problem on my Linux box.
Terrible summary of a meaningless article
What really makes this 64-bit edition interesting, is the amount of RAM that is available for user. As you know, the 32-bit edition supports up to 4Gb which is not even nearly needful for most appliances, including hard 3D gaming, but may be insufficient (in some rare cases) for things like video and multimedia edit. Probably 128Gb, supported by 64-bit edition is a key feature for multimedia designers for making a switch decision.