Is 64-bit computing always better?

 

In the early days of 64-bit, drivers were hard to find or unstable, programs wouldn’t run and help was scarce.  I started using Windows XP 64-bit about a year ago, so I’ve battled through many of the issues with working with this ‘newer’ technology.  At ORCS Web, we support Windows Server 2003 64-bit on different types of applications, from SQL Server to IIS to Microsoft Virtual Server.

 

So, is there a rule of thumb with 64-bit?  Should everyone use it whenever possible?  Or are there reasons to stick with 32-bit?

 

My original thought was that [64-bit = newer therefore 64-bit = better].  I’ve come to find out that isn’t always the case, as I’ll explain below.

 

First, my experience on a desktop.  

 

I got a new computer built and supported by Dell as a 64-bit server and with Windows XP 64-bit pre-installed.  Drivers weren’t a problem for me since Dell took care of that already.  But I still ran into a number of issues, including:

  • Many applications didn’t work in 64-bit.  Many of my favorite utilities and tools wouldn’t work.  If I were to guess at a number, 80% of my applications worked like normal, but about 20% didn’t.  That 20% was enough to be inconvenient.
  • My memory (RAM) usage was higher.  For lots of smaller applications, there is a lot of waste.  The full 64-bit address space isn’t always utilized, leaving lots of underutilized memory.
  • Help was hard to find.  Even simple things like finding my Mail icon in the control panel took a long time to figure out: http://weblogs.asp.net/owscott/archive/2006/01/19/435921.aspx

So, I have come to conclude that in many cases 64-bit isn’t necessary for a desktop computer.  My desktop has 3GB of RAM now, but I don’t see any advantages of using 64-bit unless I’m a developer that needs to test 64-bit applications or have a need to use very large amounts of memory.  My general recommendation is to only use 64-bit for a desktop computer if you have a specific reason to do so. 

 

Next, my experience on a server

 

How about on the server end?  I made the same incorrect assumption at first, determining that most new servers would eventually use 64-bit as a standard.  But experience and recent load testing has convinced me otherwise. 

 

Recently we had a high-traffic ASP.NET website that we deployed on a 64-bit server with Windows Server 2003 x64 Standard Edition.  It was part of a webfarm so we were able to compare it directly against other 32-bit servers with similar hardware.  Performance was noticeably less than on the 32-bit servers which surprised me at first.  I spent a consideration amount of time reproducing the issue and isolating it to just 32-bit.  In fact, I tested ASP.NET and IIS6 running in 32-bit mode as well to test all three situations.

 

I did some load testing using Microsoft’s Web Application Stress Tool (WAST).  I used 2 identical servers (ordered from Dell at the same time with the same specs) and built one as 32-bit and one as 64-bit.  They are solid machines, Dual 3.0Ghz Dual Core CPU with 4GB of RAM and 15,000RPM SCSI hard drives.  I set up 7 load testing servers using a Gbps network core to test.

 

Test Results – IIS only

 

Hitting IIS directly for a static 2kb page, both servers were able to serve up over 14,000 Pages/sec with only 70% CPU.  The 7 load testing servers weren’t able to max out the web servers.  So IIS doesn’t have any problem handling huge amounts of traffic!

 

Test Results – Simple ASP.NET

 

I then tested a simple ASP.NET page that ran <%= now %> as well as 2kb of plain text.  The 32-bit server was able to serve up a maximum of 3,400 Pages/sec.  The CPUs were the bottleneck.  The 64-bit server was able to serve up a maximum of 2,100 Pages/sec.  So the 32-bit server easily outperformed the 64-bit server.  (Note: On this particular test, on the 64-bit server, ASP.NET and IIS performed the same whether they were in 64-bit mode or 32-bit mode.)

 

Test Results – ASP.NET loop

 

The next test was a While loop with 1,000,000 iterations.  In each iteration I outputted Response.Write(“”) just to give it something to do.  Both servers were able to serve up 68 Pages/sec.  So, in this particular test, the 64-bit server was able to catch up in performance.  It would appear that a while loop performs identical in both situations.

 

Test Result – Others

I ran some other tests, some with interesting unexpected data, but that is a whole different topic.  These tests only start to dive into the differences between 32-bit and 64-bit computing, but they show that there is a substantial difference between them, and for low memory applications, a 32-bit Operating System is often faster. 

 

From the other tests I performed, I concluded that there is about a 10 – 15% performance penalty running a 64-bit OS with low amounts of memory.  This varies depending on what operation is being performed.

 

So, for the server environment also, I concluded that 64-bit isn’t always better either.

 

Now, what about the stories of huge performance gains on 64-bit?  Believe them!  J  For high memory situations and products well tuned for 64-bit like SQL Server 2005, there are tremendous performance gains to be had.  I’ve seen some pretty impressive tests show substantial performance gains on 64-bit.  The 64-bit SQL Server and 64-bit Virtual Server servers that we have set up at ORCS Web (www.orcsweb.com) are handling huge loads with ease.  While I haven’t purposefully compared SQL Server performance like I have ASP.NET, I have every reason to believe that the reports are true that under high memory demands SQL Server on 64-bit greatly outperforms 32-bit.

 

Memory limits blown away

 

If you have high memory requirements, 64-bit may not only be better, but it may be the only option.  The 64-bit memory space blows away many of the memory limits that used to exist.  We’re talking Terabytes instead of Gigabytes! 

 

Summary

 

I’ve come to conclude that 64-bit isn’t always better.  Don’t just use 64-bit to use the latest technology.  For low memory situations, 64-bit may actually perform worse, have driver compatibility issues and be harder to support.  But, for high memory situations, chances are good that those issues disappear and the benefits that the larger memory namespace offers will far outweigh the issues. 

There is a place for each, but there is still a lot of life left for 32-bit computing. 

 

7 Comments

  • Thanks for sharing. I've been looking into making the move and a few people have highlighted the need to run some app in 32-bit.

    Are you still running the high-traffic .net site on x64? How's it fare with pre 64-bit?

    I ask because I have a high-traffic web-server we're going to move to new hardware (uses SQL Server database for forums - 50000+ members, taking 1000-2000 posts daily. The dedicated server it's on is a very busy celeron!). I'm looking at a dual xeon woodcress with 4GB RAM but the database size is only about 500MB though - would you consider that low memory though? I'm in 2 minds whether to get the hardware but install 32-bit Windows on or make the leap.

    Any comments gratefully received!
    Danny

  • thanks for taking the time to update your blog with this info - useful

    cheers

    Andrew

  • thanks for sharing article

  • I have a tb hard drive with windows 7 home premeum 64 nit then i have a 2nd 500 gb harddrive with windows 7 proffenal 32 bit if a game or applecation dosent work on 64 which io havet found many off then i can just boot my other harddrive up also 64 allows me to have more ram :) which is a big help with games windows 7 32 only supports 3gb which is a big wast when you have 9 gb to I always use 64 bit most new games and apps with work in 64 bit but some of the older ones will not its as simple as that.

  • Hi Scott. I wrote this over 4 years ago when most new desktop machines had 2GB or less of RAM and 64-bit software wasn't the norm yet.

    Now that new machines commonly have 4-8GB and 64-bit compatible software is the norm, I agree. I'm full 64-bit desktop and server now. That's a good idea to have the other hard drive for the rare situation when you need a 32-bit OS.

  • M planning 2 Buy a new desktop, but m confused wether 32-bit is better or 64-bit?

  • Zaid, go with a 64-bit computer now. This blog post is a few years old when 512MB or 1GB memory was common for a new computer. RAM is cheap now, and the software and drivers have evolved and have 64-bit support.

Comments have been disabled for this content.