Ubuntu 9.04: 32-bit vs 64-bit benchmarks
In depth: Most Linux users run a 32-bit distro, and many of them run a 32-bit distro on a 64-bit computer. The question is, why? We put 32-bit Ubuntu 9.04 head-to-head with its 64-bit counterpart to see what difference it really makes, and whether old compatibility worries are justified.
Using TuxRadar as an example, we know that 77% of our visitors run a 32-bit Linux distro, which is astonishing given that 64-bit Linux has been around for so long. All modern Intel chips support 64-bit out of the box - that's all Core 2 chips and all Core i7 chips, plus most Xeons and many Celerons. On AMD's side, all Athlon 64, Turion 64, Phenom and Phenom II chips also support 64-bit. But although Linux was first out of the door with support for these chips, early implementations were plagued with problems and extensive use of compatibility layers was needed to make things work.
No longer. Thanks to extensive testing and feedback from the community, 64-bit Linux is as stable as 32-bit Linux, so there's little reason not to use it unless you have a need for a specific, 32-bit only app. Even Wine happily supports 32-bit Windows apps such as Microsoft Office or Half-Life 2 running on a 64-bit Linux installation, and cross-platform mainstays such as VMware, VirtualBox and Java have already been ported.
Trust us: we spend our days working for the world's finest Linux magazine, which means we test all sorts of crazy software on all sorts of crazy configurations, and 64-bit Linux really has improved a lot in the last three years. Honestly, if 64-bit wasn't up to mission-critical stability levels, do you really think Red Hat would dare to include it in its Enterprise Linux production line?
Of course, the other side of the coin is "if it's just as good for most users, why should 64-bit be used at all?" And the answer to that is "performance".
You see, for a long time Gentoo people have proudly said that compiling software by hand means you get something optimised for your CPU, and that's absolutely true - large chunks of Ubuntu are compiled for Intel 386 chips, for example. But x86-64 effectively provides a reset: x86-64 chips are guaranteed to include all of the i686 functionality plus SSE support, along with more processor registers, which means any program compiled for 64-bit is guaranteed to be optimised for your chip.
Once you accept that there's no stability or software difference to using 64-bit, the real question is, does it make any noticeable performance difference? To decide that, we ran a series of real-world tests using Ubuntu 9.04 "Jaunty Jackalope" on a fairly average computer to see just how 64-bit performs. We could have chosen any number of other distros - Fedora, OpenSUSE, Mandriva and more all have excellent 64-bit support - but we've got Ubuntu Jaunty installed on just about everything right now, having put it through lots of tests in the last few weeks, so it was just the most convenient!
The tests were:
- System boot time. We reduced the Grub timeout to 0, enabled automatic login, set Firefox to launch and load Google.com as its start page, and timed the system from pressing the power button to seeing the Google logo.
- Decompressing a tar.bz2 file. We used Linux 2.6.28 for this; it weighs in at 50.2MB.
- Compiling the kernel. Unsurprisingly, we used the freshly decompressed Linux 2.6.28. To reproduce this test, run "make menuconfig" then exit with the default settings and run "make". (Warning: this compiles a lot of functionality, so it will take some time to run.)
- Ogg encoding a WAV file. We used episode 6 of our podcast, which was 400MB in WAV format, encoding at the default quality (3).
- Power Flasher, which is an Adobe Flash benchmark.
- Blender rendering using Blender Render Benchmark 0.2.
In short, we've tried to cover a range of tasks that everyday users will be interested in, then put it all together in graph form for people with short attention spans.
Our test machine was the most "standard" thing we could find - a Dell Optiplex with a dual-core Intel Core 2 running at 2.13GHz with 2GB RAM and an ATI Radeon HD 2400 Pro with the restricted drivers as provided by Ubuntu.
Unsurprisingly, boot time doesn't really vary depending on your CPU compilation - the tiny difference is small enough to be safely ignored.
bzip2 is a very common compression format on Linux, but 64-bit makes only a small dent in the extraction speed.
Compiling a super-sized Linux kernel took over an hour in 32-bit mode (64 minutes, to be precise), but 59 minutes in 64-bit, knocking five minutes off the time - a nice bonus, but nothing to shout about.
Converting from WAV to Ogg is one area that has clearly been optimised for 64-bit processors, running at almost twice the speed.
Adobe produces only a 32-bit version of Flash that must be run through a Linux compatibility layer. That layer is flawless in terms of stability, but it does slow things down a bit as can be seen. To show you the future, we ran Adobe's latest 64-bit Flash 10 alpha release, which you can see provides a healthy performance boost.
This one is a no-brainer: 3D rendering is an easy win for 64-bit processors because it's so heavily CPU bound.
Is it worth it?
Putting aside the issue of Flash for a moment, moving from 32-bit to 64-bit is pretty much painless. In fact, you can't tell the difference without running uname -a in a terminal - all the programs you're used to are likely to run identically, and ultimately it's only a matter of time before x86-64 becomes the standard.
Then there's Adobe Flash. Not only is it pretty much ubiquitous on the web, but it's also completely closed-source - Gnash, the free software project that aims to replace Flash, is such a long way away that it just isn't an option for everyday users. Adobe has said that it intends to release 64-bit Flash for Flash 11, so until then you must either install the 32-bit build and suffer slightly degraded performance or go for the 64-bit alpha build and handle updating it yourself.
Although we certainly wouldn't recommend average users to use that 64-bit alpha, we should at least say that it worked just fine for us in our tests - don't let its "alpha" tag fool you into thinking it will take down your desktop.
At this point, using a 64-bit distro is rather like enabling hyperthreading on your CPU - you get a free performance boost for your PC, and if that means you can put off upgrading it for another six months then it's an easy win. As we said earlier, it's a nice bonus. Sure, 5-10% isn't a lot, but when it's across your whole desktop and comes at no cost, why not? If you do use an application that isn't in Ubuntu's repositories, check around first to see if other users have any experience of running it in 64-bit.
Have your say
Here's where you come in. If you're running a 32-bit distro on a 64-bit chip, what's stopping you from making the switch? Is there a specific app that isn't ready? Have you had tried in the past and had problems? Or is it just not something you care about?
We asked our Twitter followers what was holding them back from using a 64-bit distro - here's what they had to say...
- aricg: Mot every program has a 64bit version, or its buggy I never saw a big speed difference for personal use.
- Edwards80: Occasional annoyances/compatibility issues outweigh the, as of yet, small benefits.
- DilbertDave: Using 32bit Ubuntu. I'd be worried about 64bit driver availability. It's flaky in Windows in my experience.
- cavang: I am using a 32 bit one because 64 bit doesn't bring any advantage at all (I have 2GBs ram) and 32 bit works perfectly for me.
- nine_L: Utter ignorance!
- Muzer0: This used to apply to me until today, so I'll answer: Pure ignorance. I expected it to be as bad as Win for 64-bit. I was wrong.
- asmodaous: For me I play wow through wine and I hear there is no 64bit version.
- gmclean: Flash is not yet 100% awesome, is it? Java's basically there. I also have some interesting issues with playing videos. I use Deb64.
- tweetsponge: With 4g or less of memory and a server kernel i just don't see any real need or motivation via features to go 64-bit.
Disclaimer: the TuxRadar server runs Ubuntu 8.04 with x86-64. Is nice!