Adobe introduced 64-bit support for ColdFusion for the first time in ColdFusion 8, which can run on Solaris SPARC. Since that time, Sun has released a 64-bit JDK for Intel x86-64 processors. With the release of this new JDK, along with the efforts from the ColdFusion team to ensure the 64-bit compatibility, the ColdFusion 8.0.1 update has added full 64-bit support for Windows, Linux, and Mac OS X. For complete up-to-date details on ColdFusion 64-bit platform support, refer the ColdFusion platform support matrix.
Most of the functionality and features of ColdFusion run just fine on 64-bit platforms, however, certain features like ColdFusion COM interoperability, ColdFusion Delphi interoperability, and Microsoft Access database connectivity do not work on a ColdFusion 64-bit platform. A few other features, such as ColdFusion .NET integration services and database drivers currently run in 32-bit mode.
Additionally,
the cfregistry tag now has a new
attribute called registryversion, which is used to
handle the existence of two registries on Windows 64-bit operating system.
In this section, I share with you a few of the performance tests that our team performed on a ColdFusion 64-bit configuration and compared it with ColdFusion 32-bit configuration.
As I
discussed earlier, applications that can use the large memory addressing
capability of 64-bit can gain significant performance advantages. To demonstrate this, our team created a ColdFusion script that reads a few large files (around 3 MB each) stored on the disk. The script was run on two configurations of ColdFusion against varying values of the maximum Java heap space (the Xmx value). One of the
configurations was ColdFusion 8.0.1 Enterprise Edition 32-bit deployed on a
Windows 2003 32-bit operating system. The other configuration was ColdFusion
8.0.1 Enterprise Edition 64-bit deployed on Windows 2003 64-bit operating
system. We used JMeter as the client, which sent requests to the ColdFusion
servers with 30 no-think time virtual users for five minutes. Note that JMeter
was running on a different system. Figure 1 shows the results.

Figure 1. Performance in 32-bit versus 64-bit ColdFusion on Windows
As you can see, the number of requests processed per second (throughput) increases dramatically as the Java heap space is increased. When the physical memory limit is reached, virtual memory usage comes into picture, resulting in the operating system using a lot of disk-swapping operations, causing time delays. On a 64-bit system, with a higher java heap space value set, this limit is reached late due to which disk-swapping is low, resulting in better performance.
In addition to this, on 32-bit operating systems, the maximum number of File-Descriptors that can be created by a process has a limit that is much lower as compared to 64-bit operating systems. This explains the reason for 64-bit systems to perform better at the same Xmx value.
Note that this is a "best-case" scenario. Other applications that are memory-intensive would see a lower performance gain. In this test, on a 32-bit system, the maximum heap space that could be given was 1280 MB, whereas, for a 64-bit system, the maximum heap space we tried was 8192 MB. We could have easily increased the RAM but I think this is enough evidence to demonstrate that memory intensive applications would scale better on 64-bit systems.
The next
performance test that our team ran was on a few of the ColdFusion tags and
functions, such as CFImage and CFDocument tags; the REFindNoCase, CFSwitch/CFCase, pEvaluate, various Date
functions, IsDefined, Encrypt, and Evaluate functions; and
structures and components. The test was run on the same configurations as used in the previous test; the maximum Java heap space was set at 1280 MB for both of the configurations.

Figure 2. Testing ColdFusion tags, functions, structures, and components in the two configurations on the PC platform.
As you can see, there are performance gains of around 0-15% in most of the tags. This can be attributed to the fact that most of these tags are computationally intensive and perform better on 64-bit systems.
The same performance tests were run on the Macintosh platform. Here, one of the configurations was ColdFusion Enterprise Edition 8.0.1 64-bit deployed on Mac Intel 10.4 32-bit OS. The other configuration was ColdFusion Enterprise Edition 8.0.1 64-bit deployed on Mac Intel 10.5 64-bit OS. On both of the configurations, readings were taken with maximum Java heap space at 1280 MB. Default JDKs shipped with these operating systems were used. For Mac Intel 10.5 64-bit OS, JDK 1.5.0_13 is the default JDK. Due to the presence of different JDKs, this would not be an apples-to-apples comparison (the pun absolutely intended), but this is what the end-user would see for results.

Figure 3. Testing ColdFusion tags, functions, structures, and components in the two configurations on the Mac platform.
There were huge
performance gains, around 10-150%. However there was a drop in performance of
the cfdocument tag.
Note that for the above tags’ performance tests, the graphs are normalized such that the bar graph is readable. For example, in case of Windows, the actual throughput for the cfimage tag performance was 5 and 5.75 for 32-bit and 64-bit systems respectively. This data was multiplied by 50 so that the bars are visible for the cfimage tag.
With the addition of full 64-bit support, ColdFusion 8.0.1 has shown the commitment the ColdFusion team at Adobe has for enterprise application development. 64-bit systems are the future of computing and with the ColdFusion 8.0.1 update, you can take advantage of these enterprise features today. Someday soon, 32-bit systems could be a thing of the past.
I would like to acknowledge the help of the following people and resources that contributed to this article: