Q&A: 64-Bit Internet Explorer

From time to time, folks ask a variety of questions about 64bit IE.  I hope to answer the most common questions here.

NEW: Internet Explorer 10+ uses x64 in a fundamentally different way than IE7, IE8, and IE9, the versions for which the post below was written. By default, IE10+'s frame/manager process runs at 64bit, while Desktop Tab processes run in 32bit. Metro-style tab processes run at 64bit. A 64bit JIT was added to improve performance. You can learn more by reading a newer post.

Q: Can I install a 32bit version of IE on a 64bit version of Windows?

A: When you install the 64bit package, the 32bit version of IE will also be installed automatically.  You cannot install only the 32bit version on a 64bit operating system, because Internet Explorer updates OS platform components and must update both the 32bit and 64bit versions.

Q: As an end-user, how can I tell what bitness of IE I'm currently using?

A: To see if you're running the 64-bit version of IE, hit ALT+H to open the "Help" menu, and click "About Internet Explorer."  If you're running the 64bit version, this screen will say "64bit Edition." Alternatively, check out the x64 button add-on.

Q: From the server or from JavaScript, how can I tell what bitness of IE a web visitor is using?

A: The simplest method is to check the user-agent string.  See www.enhanceie.com/ie/webdev.asp#bitness for more info.

Q: Why isn't 64bit IE the default browser? Why can't I set the 64bit version of IE as the default browser?

A: This was an explicit choice made by the IE team, which may change at some point in the future.  The problem is that users might inadvertently get "stuck" using the 64bit version and not realize it.  This might cause some problems.

Q: Why? What does not work properly with 64bit IE?

A: Browser addons, including BHOs, Toolbars, and ActiveX controls, must generally be the same bitness as IE itself.  So, if you are running a 64bit version of IE, any site that uses, say, Adobe Flash, isn't going to work until you install the 64bit version of the addon.  Sadly, almost no browser addons are currently available in 64bit versions, although that's somewhat likely to change in the future as 64bit Windows becomes more prevalent. 

There are two 64bit add-ons that I do recommend:

  • The 64bit version of Ralph Hare's most excellent mouse gestures addon
  • My x64 button, which allows you to easily recognize 64bit IE and reopen the current page in 32bit IE

 Q: What options/settings are shared between 32bit and 64bit IE?

Generally speaking, 32bit and 64bit share configuration settings wherever possible.

Shared

  • Homepage and favorites
  • Search providers
  • Web slices
  • Accelerators
  • Context Menu Extensions
  • Security Zone settings
  • Autocomplete information, including passwords
  • Cookies: persistent cookies are shared
  • HTML5 Storage: localStorage is shared

Not Shared

  • Binary add-ons: each only loads add-ons that are of the correct "bitness"
  • Cookies: session cookies are not shared
  • HTML5 Storage: sessionStorage is not shared

Q: Why does 64bit IE9 get faster JavaScript benchmark scores than IE8 (32 or 64) but slower scores than 32bit IE9?

In IE9 there's one other major difference between the 32bit and 64bit versions of IE. IE9 includes a new script interpreter which is much faster than the script interpreter in IE8. However, 32bit IE9 also includes a Just In Time (JIT) script compiler which converts script into machine code before running it. There is no JIT compiler for 64bit IE. So, for benchmarks like SunSpider (and script-heavy sites) 32bit IE9 runs script up to 4 times as fast as 64bit IE9 (which itself runs script around 5x as fast as IE8). So, you could end up paying a significant speed penalty when using 64bit IE9 vs using the default 32bit version.

Telemetry data shows that less than half of one percent of IE browsing sessions are conducted in the 64bit browser.

Note: IE10 Preview shipped a 64bit JavaScript JIT compiler, and the Windows 8 "Metro-style" browser (which will not load browser extensions) runs its tabs in 64bit processes.

Q: So, is there any benefit to using 64bit IE?

A: There are a few advantages to using the 64-bit version:

  • Security: DEP/NX is always on for 64bit processes. (Of course, on Vista SP1+, 32bit IE8+ has DEP/NX enabled by default too.)
  • Security: Memory protections like ASLR are more effective (because the address space is dramatically larger)
  • Security: Most bad guys only bother to write x86 shellcode, which will fail in an x64 process
  • It may crash less. (Because most addons don't load in 64bit IE, it tends to be more reliable.)
  • It may be faster to start up. (Because most addons aren't loaded. You can disable add-ons in 32bit IE if you'd like)

Q: Okay, so why offer 64bit IE at all?  

Because we have to.  :-) 

One thing to keep in mind is that Internet Explorer is basically the combination of a number of platform components, including the networking components (URLMon/WinINET), the rendering components (MSHTML), the script engines (JScript.dll/JScript9.dll, vbscript.dll) and a variety of other pieces that hold it all together. These components must be made available in 64bit versions so that 64bit applications can be built using these components.  Additionally, because Internet Explorer can be launched/created/used as a COM Server, we offer a 64bit version to enable hosting inside 64bit processes.

While we could have done work to make it harder for users to get to 64bit IE (e.g. by not creating a Start menu shortcut), I don't think there's any compelling reason to do so.

One day, 64bit IE might see a lot more use, as 64bit systems take over and 64bit add-ons become available.  Time will tell.

Got another question (or answer) about IEx64?  Let me know!