From 32-Bit to 64-Bit: Why Software Development Is Lagging Hardware Improvements
Your new computer has a 64-bit processor, but your software probably is still 32-bit. Why haven't software developers done more about it?
Thu, January 29, 2009
CIO — Why are you using 32-bit software on your 64-bit computer? If you just bought a top-of-the-line Sony BRAVIA 52" 1080p 120Hz Flat-Panel LCD HDTV for $2,500, would you use a rabbit-ears antenna for your TV signal? I don't think so!
Even though 64-bit software for UNIX goes back decades, mass availability and adoption of 64-bit operating systems and applications been slow. In theory, if you run 64-bit software on a 64-bit CPU-powered PC, you should get better performance. In practice, it's not so clear cut. A 64-bit program that's not optimized for a 64-bit processor can actually run worse than its 32-bit twin working on either 32- or 64-bit Windows Vista.
To make use of 64-bit's performance and features, both the operating system and application must be optimized for the new processor. However, many developers see 32-bit software as being "good enough." They rely on the processor's improved speed to disguise the 32-bit code's inherent inefficiency on a 64-bit processor. That inefficiency may not be trivial, since every call to 32-bit code must be translated to 64-bit code before it can run. For example, on Windows Vista 64-bit, 32-bit applications must be "thunked" via the WoW64 (Windows on Windows) subsystem to run. Similar methods are used in other operating systems.
By avoiding this translation process, any well-written and optimized 64-bit program should run faster. In addition, any application that requires access to huge amounts of memory, such as a database or simulation, should run more efficiently in 64-bit environments.
Of course, developers may encounter roadblocks before they even need to worry about optimizing their own code for 64-bit architectures. Jerry Young, a .NET Developer at American Processing says, "There are some people stuck in 32-bit land." For example, says Young, Microsoft's IIS (Internet Information Server) Web server can have issues with Windows Server 2003 because IIS doesn't support mixed modes. "Specifically, I had a C# application installed on a 64-bit Windows 2003 installation and IIS was set up to run in 64-bit. The problem was: I had a legacy 32-bit C++ DLL, and it wouldn't work," he explains.
But integration issues aren't the only reasons why some developers aren't migrating their applications to 64-bit.