Those who have read my numerous blog posts on tuning the JVM will no doubt be wondering why I pose this question. There is no doubt that the settings in the jvm.config file as shipped with installs of ColdFusion are largely inadequate but this can be affected fairly significantly by simply adding start sizes to the total memory and permanent generation, like this:
The two left hand numbers are added to the default ones in the jvm.config that comes with ColdFusion and will have a significant effect on improving performance. I am not saying there are not other things which can be done but in the past 10 years adding these two arguments has had the most beneficial effect, in my experience. Of course the actual numbers could be higher in a good amount of Ram is available.
Another factor which improves with each new version of each JVM are the default characteristics, when we consider that a JVM is at the heart of almost every kind of Java application it is remarkable that we have not seen more problems with the default settings.
So here is what I feel is becoming as important as tuning the JVM and that is reducing the amount of work it has to do. The advent of heavily CFC based frameworks certainly impacted JVM performance detrimentally, I have seen that many, many times. Another way and in some ways a more dramatic way to help is by reducing the amount of work caused by each incoming request and the best way to do this is to get very accurate and creative with caching. This came home to me at the O'Reilly Velocity conference in San Jose and I will be creating a series of blog posts centered around just that, more soon...