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
I noticed some recent changes of software vendors pushing along 64 bit platforms. Don't know if the bare paower is ready to be fed to home users, but i'm pretty convinced that a new are of computing power is happening
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.
Ahh the benefits of having the source to everything on your system.
Regards,
Steve
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.
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.
Well, other than addressable memory - got to find some use for those Terabyte flash cards - it's a great excuse to make you pay lots of money for something that's supposedly faster so that you can forget what you really wanted was a faster Gigabit IPv6 Internet that could chop wood faster.
Did I mention you can spend more money? Because too many people have been buying laptops for $399 to $999 instead of the usual $4000, and PCs for $299 to $499 instead of the usual $2000. Have to justify those CEO salaries, don't we?
-- Tigger warning: This post may contain tiggers! --
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
While benchmarks don't show much improvement, it does potentially provide a bridge to Vista, though from what I've been seeing XP to Vista is App..er..Bananas to Oranges. There really does seem to be a slim case for Win64 (there also seems to be a slim case for Vista, however.) So Linux is certainly a fair case to make.
A feeling of having made the same mistake before: Deja Foobar
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.
While many users have been complaining that Win 64 has little support for their devices and many of their programs are still 32bit this is not the case on Linux. I have been running Linux 64bit for over a year now and have found that everything works with no problem. Every open source apps Ive seen works fine on x86_64 Linux. Infact the only reason why you need 32bit compatiblity on Linux is for closed source software(mainly games). Linux is years ahead of Win and probably any other OS in the 64bit OS area, and its all thanks to it being open source.
The spyware will takeover CPU 0, bloat will occupy CPU 1 and your apps will be paged out to a highly fragmented file created by the file system as opposed to a fixed file on a swap partition.
You ought to know that by now.
A feeling of having made the same mistake before: Deja Foobar
Someone give me the ratio of article text to ad text for those pages.
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.
does this mean it's time to start work on 128-bit Linux and Unix?
...
Hey, I've got to have something to address all the Terabytes in my flash card
-- Tigger warning: This post may contain tiggers! --
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 was impressed that there was practically no degradation when moving from 32-bit to 64 bit. That means there's no real obstacle to adopting 64-bit OSes and apps.
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
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)
I think most people hailing 64 bit computing are missing the obvous. You'll need a little more RAM to run equalivent to 32 bits. That's because pointers are platform dependant and on a 32 bit machine they are 32 bits long, and 64 bits on x86-64.
Not that RAM isn't cheap enough today, but when you draw the line, 64 bits doesn't bring anything better to the table if we count out larger address space. Not _really_ worth switching if you don't need that extra RAM (and I doubt most of you do).
If you compare various benchmarks you'll see that Linux offer a much better 64-bit performance across the board in comparison to Windows XP Pro x64. This means if you have a 64-bit machine you just got another good reason to switch to Linux.
Are you retarded? It makes it a non-issue because AS OF TODAY, a lot of distros don't have the choice to build 64-bits systems with 64-bits binaries. Sheeze.
Nice "l33t" speak, by the way.
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.
select() just called. It turns out you fail the networking portion of the interview.
It's nice to see the cruft go away -- until you try to run an app that hasn't been ported since God knows when, and the source isn't avilable for recompilation.
And it's hard to know just which apps have 16 bit code in them sometimes. I hope I'm not upgrading myself into a terrible avalanche of secondary upgrades or "learn-to-live-without-it"-itis.
I want what I've got, just *faster.* What's wrong with that?
Generally, there's no benefit to locking to (or against) a given core, but if you've one core designated for supervisor operations, you don't want applications to interfere with it. In many-way SMP clusters, you also don't want threads geographically spread too far, or you'll lose performance.
The easy way to fix the problem on OS' that don't support CPU-bound applications is to have more cores than a process can have threads.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Personnally I don't mind your compiling of your own software on your own machine, but what you say makes little sense.
> 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.
The parent was specifically mentionning choosing a distribution that does support x86_64.
Of course it is a huge issue even for Gentoo to make sure all the packages on offer are 64-bit clean at the source level. There are plenty of ways for a C/C++ application to not behave properly in a 64-bit environment (assumings ints are the same size as pointers for example).
In other words, yes 64-bit is an issue even for source-based distros.
You like to compile and run the greatest, latest and untested in exchange for a 10% boost in performance, good for you, you are doing the community a service.
Personally I like to change my O/S and its components as little as possible (at least not until I can see a marked gain in functionality), and when I do I like everything to still work like before. I also have a fundamental objection to redoing the compiling work (which does cost electricity, genereates heat, wear and tear, etc) over and over again for very little reason. OK for some packages I really need, never for Gnome/KDE or even the kernel if I can help it.
Each to their own.
I have seen a lot of people saying that the main performance enhancement in going to x86-64 for most apps is that you have more registers.
While I am the first to agree that the x86 instruction set is register starved, I was under the impression that most modern CPUs implemented register masking (I can't remember the exact term, it could also be banking or caching). I basically thought that the hardware did fancy things to "cache" registers, so that even though it looks like you're having to fetch stuff from the stack - you are infact getting it from a very fast on-die location.
Can anyone familiar with modern x86 guts comment?
Damnit - I wanted my nick to be "WouldIPutMYRealNameOnSlashdot"
Personally I like to change my O/S and its components as little as possible (at least not until I can see a marked gain in functionality), and when I do I like everything to still work like before. I also have a fundamental objection to redoing the compiling work (which does cost electricity, genereates heat, wear and tear, etc) over and over again for very little reason. OK for some packages I really need, never for Gnome/KDE or even the kernel if I can help it.
Which is perfectly fine. I'm not trying to plug Gentoo here, even while i like the distro a lot - i just wanted to mention that source-based distros offer the possibility of a 64-bit userland today, even when a lot of "classic" distros doesn't. You can have a Linux system running a 64-bits kernel with 64-bits applications today if you wish so, and source-based distros is a way.
Arbitrary sig
I assume you meant to say "bang for the cores" surely dual core ships will be quite a bit cheaper than two single core chips.
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.
Some of us like to compile older stable tried-and-true versions from source so we can get the compile-time options set the way we want them.
You should see how much faster some gui apps are when you eliminate GNOME support. How much smaller your memory footprint is when you remember to strip debugging symbols (which, believe it or not, distributors sometimes don't do) and remove support for features you don't need. And so on...
Simple fact is if you want full control of your system you need to be comfortable with using software, not just plugging in binaries. If you don't want to do that, there are plenty of people out there making generic binaries you can use, and that's fine, but why the hostility towards people that prefer to use software?
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
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
your apps will be paged out to a highly fragmented file created by the file system as opposed to a fixed file on a swap partition.
You ought to know that by now.
Yet another great reason to use Linux, where the only type of swapfile you can create is contiguous!
"I don't know, therefore Aliens" Wafflebox1
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"!
For those of you who have never used Berzerkley sockets (Now those guys inhaled. A lot. And often) that's really really really funny. Too bad it's posted AC.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
Now, if you were to use multi-way as a form of spyware/virus mitigation, what you'd do is list the processes you definitely want to have free-reign, and then say that everything NOT on that list is confined to one core. Preferably on someone else's machine, but that's a whole different ballgame.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
so important while comparing 32bits vs 64bits?
Wondering why i am doing so strange posts? I am trying to get a "+5,Flamebait" or "-1,Insightful" rating.
32-bit utilities are placed elsewhere, but they are fooled to think they are in \windows\system32.
virtual 8086 mode isn't availible any more and although 16 bit protected mode is i don't belive XP 64 supports using it for win16 apps.
so its goodbye to running any dos or win16 apps without using a slow emulator.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
64 bit is useful when you want to manipulate 8 megapixel movies in floating point RGB. 64 bit addressing allows those to be manipulated entirely in RAM with no tiling. The improvement is huge and the money saved on tiling engines can be spent on image manipulation.
I believe that's called marketing.
The Raven
I'm sure it won't be too long until most spyware is rewritten to "take advantage" of multiple processor cores.
So if I wanted to harness the extra bit of speed that a 64-bit processor would theoretically give me, I would either have to use a distro that has binaries precompiled for 64-bit use or use something whacky like Gentoo and combile all my binaries myself?
i saw a couple frames per second but nothing that can't be achieved with a simple overclocking
http://www.npcgaming.com Dedicated Gaming Servers
Performance obviously not good enough to survive slashdotting...
Maybe you could also use 8 character constants (8cc) like 'NoString'. But the compiler wornings would drive you crazy. ;-)
Terrible summary of a meaningless article
I think it's something that we all must have crystal clear, both new x86-64 series are not full 64-bit CPUs, as x86 based are not CISC nor RISC and even not fully 32 bits processors.
New x86-64/em64t cores have 64 bit addressing and for doing so they have 64-bit GPRs but all other registers and operand sizes are still 32-bits.
So from where did the scientific benchmark performance gain come?
Well, FP units on pentium/athlon chips are 64bits capable(32-bit native) since MMX/3DNOW instruction sets and 128bit capable(64-bit native) since SSE2/3DNOW2 instruction sets. The problem with 128bit instructions is that L1 to L2 bus is only 128-bit(4 words as pentium/athlon caches are 4-way associative) wide so every instruction needed 2 cache accesses if operands where not in registers nor L1. With new 64-bit address spaces the whole memory hierarchy has been upgraded, and thus the 4-way cache can provide 4 long(64-bit) words so new ATC(advanced transfer caches) can provide 256-bit bus wide(only in 64-bit mode, not in legacy mode) and thus both operands can be accessed same time.
Having a 20(aprox) cycles access to L2 you can easily see the resulting speed-up.
Last time I checked, most (all?) games using the Starforce 3 copy protection system wouldn't run under x64. It uses a driver for low-level CD access, and there was no 64-bit version available.
I'd quite like to upgrade my home PC to make 64-bit development and testing easier, but I'm gonna hold off if it'll break the 5-6 SF3-protected game titles I own. The games themselves will run fine I'm sure, so it's insane the copy protection is the only obstacle. Who was it that said DRM was not an issue for legal owners?
Thats absolutely correct - Some things never change.
The idea behind the spaces and the parenthesis is to force developers to stop assuming anything about the OS and/or FS naming conventions and restrictions.
Its Valve who hasnt changed despite Microsofts (oh-so-ubiquitous) attempts to force a change.
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.
Actually, a linear RAID of 64 250GB disks - and we can
have 16 TB easily. And then mmap it!
My quality social news site.com.
Well, I'm guessing that it won't do YOU a bit of good. However, I am a 3d Animator. My typical scene is limited by the per-task memory limit of 32 bit processors. I've been waiting for the day that I can switch to 64 bits and that day is very close. Autodesk has not released the 64 bit Max yet, but when they do I'll be able to use more then 2 gigs of meshes and textures in my scene.
Gone will be the countless hours of trimming stuff our of my scene so that Max doesn't crash. Oh, and I went through this same thing back in the 16 -> 32 bit upgrade.
The data type "long" is probably the most useless C data-type these days, having been equal in size to int for so long. In my own code, I tend to have a header with typedefs defining "int_8", "int_16", "int_32" etc. (and unsigned variants) for when the width matters, and I use bare "int" everywhere else.
Code written with "long" everywhere was probably written back in the days when sizeof(int) might be 2. (Or written by someone who coded quite a bit during that era...)
--JoeProgram Intellivision!
And this tag had to occupy some sort of physical storage medium that could be used for something else if applied well. But alas, we can't draw on memory that Just Doesn't Exist in 64bit computing everytime we want to overoptimize some code.