Accessibility

Table of Contents

Taking advantage of 64-bit support in ColdFusion 8

ColdFusion 64-bit support

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.

ColdFusion 64-bit and performance

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.

Large memory scenario

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.

Performance in
32-bit versus 64-bit ColdFusion on Windows

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.

Performance of ColdFusion tags on Windows

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.

Testing ColdFusion
tags, functions, structures, and components in the two configurations on the PC
platform.

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.

Performance of ColdFusion tags on Macintosh

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.

Testing
ColdFusion tags, functions, structures, and components in the two configurations
on the Mac platform.

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.

Attributions

I would like to acknowledge the help of the following people and resources that contributed to this article: