Ubuntu – Why x64 bit version is way more faster than x32


Lately I noticed that my old laptop (Toshiba Satellite L500-1DT) works better with x64 based Ubuntu version, than x32. Well with faster I meant – Adobe Flash videos and apps works much better. Software Center and APT apps works much smoothly. Everything works flawless on x64. Cooling fan works a lot less (not cooling the system all the time, like on x32). On x32 bit version I had a feeling, that my computer will overheat. 2 weeks ago my battery died when I ran x32 version. I don't know, is it was because of overheating or coincidence. It got REALLY hot, and very very slow. I'm running on Celeron(R) Dual-Core CPU T3000 @ 1.80GHz × 2 and Intel GMA45 video chip-set (with 256mb shared memory). RAM – 4 GB. Ubuntu 11.10.

This is not the only case and only machine i discovered that x64 works FAR more better, than so-called "Recommended 32-bit version". I'm really curious about this, and would like to know answer once for all.

Please, explain this to me or guide me with a link.

Thank you !

Best Answer

Uh, "twice as fast if not more depending on the hardware it runs on"?? Ah, if only the world worked this way.

For example, take a look at this article: Ubuntu 12.04 LTS: 32-bit vs. 64-bit Performance. While some of the synthetic benchmarks show drastic performance gains, there are also many which show either just minor (10% to 30%) gains, no gains, or even a performance decrease. And those are just synthetic benchmarks which usually does not give useful insight into what the system performance will be when doing something other than running benchmarks.

System performance is very much influenced by "system" bottlenecks and you can't make sweeping generalizations such as twice the bits implies twice the performance.

Having said that, I still try to use the 64-bit flavors of operating systems because I expect the performance to be at least somewhat better. While the size of the CPU registers is doubled, possible of more importance is that the number of registers increases from eight in x86 to sixteen in x86_64 64-bit mode. This allows a compiler to potentially produce faster code. There are a number of these instruction tweaks which, while probably insignificant in any one instance can add up when used system wide to a useful performance gain.

There is also little if any performance loss for programs compiled for 32-bit x86 since they can be run in "compatibility mode".

People often make the generalization that if you only have 4GB or less of memory then there is no difference between 32-bit and 64-bit and thus no reason to use the 64-bit version. This is simply not true. The instruction architecture of the CPU is different enough (IMO) in 64-bit mode to prefer using the 64-bit OS if your hardware supports it.

After all, you wouldn't want to run your 32-bit CPU in 16-bit mode, would you? :-)