Have you tuned your JVM on ColdFusion MX yet?
ColdFusion's move to java gives developers and system administrators a wealth of performance tuning options. This is due to the fact that the runtime for ColdFusion is now pluggable (the JVM), we don't have to rely completely on Macromedia to make performance optimizations, we can use different JVM's and lots of different JVM settings to improve the performance and scalability of our ColdFusion Applications. This is a topic I haven't seen much discussion about yet, and I'm not sure why.What JVM should I use?
You have lots of choices, IBM, Sun and BEA all make JVM's, each will perform differently. Which is the fastest? I couldn't tell you, it will depend on your server platform, and your application. Sun being the creator of Java, has the most popular JVM, but if you are really concerned about performance you should test with each vendor's JVM.
Here are some articles that may help make your decision (in no particular order)
- Java 1.4 Performance Guide (http://java.sun.com/j2se/1.4/performance.guide.html) - If your using Sun 1.3 you should probably think about upgrading to 1.4, due to huge increases in JNI performance (if you use COM, Registry, Verity you should see a big boost), Increased threading performance, 35% servlet performance increase (CFM pages are run as servlets in CFMX), byte code to native code compilation, etc
- BEA and Red Hat Partner to Deliver Unparalleled Java Performance For Enterprise-Class Linux (http://industry.java.sun.com/javanews/stories/story2/0,1072,47280,00.html)
- The Volano Report - a benchmark, this report is 9 months old.
- Spec JVM98 Benchmark - reports are kind of old, but you can buy the benchmark software and run your own tests on your system.
- Java Performance FAQ (http://java.sun.com/docs/hotspot/PerformanceFAQ.html)
- Java Performance Docs (sun) (http://java.sun.com/docs/performance/index.html) - lots of good stuff here
- Java Platform Performance Strategies Aad Tactics (http://java.sun.com/docs/books/performance/index.html) - buy the book or get it free online
- Java HotSpot VM Options (http://java.sun.com/docs/hotspot/VMOptions.html) - docs on all the jvm settings for sun jvm's
- Tuning Garbage Collection (http://java.sun.com/docs/hotspot/gc/index.html) - currently this doc is for 1.3.1, the sun jvm 1.4.1 includes an additional garbage collector, a concurrent gc which is supposed to work well on multi-processor servers.
- Tuning Threads (http://java.sun.com/docs/hotspot/threads/threads.html) - this deals only with Solaris because you can choose different threading models on Solaris.
- Big Heaps, and Intimate Shared Memory (ISM) (http://java.sun.com/docs/hotspot/ism.html) Big Heaps stuff applies to all platforms, the ISM is solaris only.
I haven't had the time to do any JVM testing on ColdFusion MX yet, but if you have I'd love to hear about your experiences
Update: I have removed most of these links because they no longer work. You should take a look at this article I wrote: Performance Tuning Garbage Collection in Java
Like this? Follow me ↯Tweet Follow @pfreitag
You might also like:
- Robi Sen on Hung Servers, java.lang.OutOfMemory errors and Tuning CF JVM - November 19, 2004
- ColdFusion Garbage - June 3, 2004
- ColdFusion Memory Usage Stats - March 15, 2004
- Updating Java on ColdFusion or Lucee - March 21, 2019
- Getting Size of Heap and Non Heap Memory in CFML - July 17, 2013
- Adobe Says Go Ahead and Upgrade your ColdFusion JVM - October 24, 2012
- Enabling Unlimited Strength Cryptography in ColdFusion - March 8, 2012
- What's New in Java 7? - January 18, 2011