Objects, Frameworks and Performance
I must preface this with saying that while I build apps of a reasonable size, they usually don't have very much physical code. I have fairly rich e-commerce applications which include content management, commerce and various custom features. One recent project had the following twenty business objects - each nominally with a service, dao and business object class file:
Address, SiteUser, Page, Press, User, ValueList, AuthenticationMethod, ProductCategory, Product, ProductAttribute, Order, OrderItem, DiscountCode, Photo, Report, address, CrossSell, Booking, TripType, PossibleTrip, Week
Of course, many applications are probably an order of magnitude larger than this, but it isn't a trivial application, it provides fairly rich functionality and on both my dev laptop and the production server it has never taken more than 2-3 seconds to reload the entire OO app in CF 8.01 with the default JVM.
I'm wondering if an additional benefit of code synthesis in ColdFusion may be that while there is the overhead of parsing XML and metadata at runtime, the vast majority of the CFC's and their methods don't exist?
Does anyone out there have an app with a first page load time of more than say 20-30 seconds and have any sense of how many CFC's you have, what is driving the load time, etc?


@dfguy, I think we can do pretty well with Adobe, but yeah - Railo is pretty impressive in terms of instantiation of cfcs - it's really nice!
@Damien, Wow - 20 minutes - that blows me away. Glad it's a little more reasonable now!
I currently have a code synthesis approach where most of the class files don't exist and most of the methods are described in xml and picked up using on onMissinMethod() style approach. My default assumption is that the performance of my approach would suck but that it would be an acceptable trade off for speed of development and ease of maintenance given most of my clients have low volume sites. I was in the middle of porting to a code generation solution with real cfc's and methods being generated pre-runtime to have a more conventional architecture - in part to have a more performant solution, but I'm now starting to wonder if the cost of all of the oMM() hits are less than the cost of the instantiation of all of the extra cfc's and methods given the way cfc's are compiled down to java objects. Who knows?!
application and refactored it. One to mach-ii-coldspring-transfer the other to an in-house cfc based framework. In both cases the new apps are remarkably worse performance wise than the pre cfc based version. I suspect architectural issues in the new versions.