A
thread response on CF-Talk got me thinking that there still might be some naivety out there with regard to ColdFusion debugging while doing CFC-heavy development. In the aforementioned reponse in particular, it was noted that the
ModelGlue framework "runs very slow." Well, I didn't pursue this in the thread because the thread itself was really about custom tags and I didn't want to hijack it, but I thought the following tidbit would be valuable to developers:
When developing a CFC-heavy application in a development environment, you will notice considerable performance degradation if debugging is turned on and you have the "Report Execution Times" checkbox in the CF Administrator checked. This is due to the way the debugging factory goes about doing its time checks. This holds true for both CFMX 6 and 7. If you turn this checkbox option off, you will notice a significant boost in response time. This is why frameworks in particular are seemingly "slower" when compared with their spaghetti code nemesis; they are very CFC-heavy by nature.
Personally, I always keep this option off anyway, regardless of whether or not I'm working with CFCs. Just having the debugging service turned on at all will skew any numbers that it reports. If I really want to know what a page's response time is going to be, that's what load testing tools are for. If you can't afford one of the commercial options you can still use Microsoft's free Web Application Stress Tool.
One last thing to note: NEVER enable debugging in any production environment. Even restricting debug output to a particular IP address address unnecessary overhead to all requests made to the ColdFusion server, regardless of the IP address. The very fact that the service is on for any request slows the whole server down. The IP restriction is just a security feature to limit who can see what the service is outputting.