Ronan, You are right to think of the costs of the transactions. Certainly calling a method has a tiny bit more overhead, but in my experience, even in high traffic situations, the bottlenecks aren't the cost of running a method, more from unoptimized JVMs and database queries as well as not properly caching data.
Before you begin any optimization, first load test your application. This is done by using a load testing tool such as JMeter to access parts of your application and record the responsiveness. Then you will know what the server capacity is for certain operations. Some operations ( large queries) by nature will be more costly than small operations, but to know where to optimize, you need this data. Once you have an idea of your application performance, then you should tune the JVM on the server(s). You can find out more about JVM tuning by reading this: http://www.alagad.com/go/blog-entry/details-of-tuning-a-coldspring-model-glue-reactor-application-on-coldfusion-8 Simply put, you'll gain a lot of application performance just by properly tuning the JVM. If you need expert help for this, call MIke Brunt, at alagad.com. Next, run your load tests again. Look for interactions with the database and use a query analyzer to test your data access. Be sure to test all forms of a dynamic query, IE, if you can search for firstname and lastname, you'll need to test 4 permutations, no name, first name only, last name only, first and last name. Judiciously adding indexes where appropriate is the second most high impact part of application tuning. Wash, Rinse Repeat, until you've covered all the data access in your application. Now run your Load Tests once again and see where you stand. If you need additional optimizations, consider caching common static datasets. Also consider caching cfcs (if you aren't already doing so via natural or framework means). Hope this helps you focus on the right areas for optimization, DW On Mon, Mar 31, 2008 at 9:03 AM, Ronan Lucio <[EMAIL PROTECTED]> wrote: > > Hello, > > A have doubt that has hitting my mind: > > Supposing I have a web page that gets about 50 informations between > header, body and footer. > Supposing such web page has about 200,000 page views per day, and 70% > of this access occurs in business hours. > 140,000 access in 8 hours = 17,500 per hour. > Not so much, but a considerable number. > > If I use a Data Transfer Objects, ColdFusion would get the information > directly from the pointer, right? > But it would have to execute few news CreateObject(). > > If I use a Factory I could get these objects from it, but ColdFusion > would get the informations from the Beans, > but this option would cause ColdFusion execute 50 get() methods plus, > per page view. > > 50 get() methods may not be considerable a big number, but it can be > when we multiple it per 200,000 page views, especially knowing that each > get could have some datatype controls (get("name")). > > How do you see this situation? > I know this can easily solved with a cluster, but in Brazil ColdFusion > Enterprise insn't so accessible and maintain a big cluster some times is > inviable, especially with the constantly software upgrades, that should > be a good thing. > > BlueDragon perhaps can became a good option, soon. > > Ronan > > > > -- "Come to the edge, he said. They said: We are afraid. Come to the edge, he said. They came. He pushed them and they flew." Guillaume Apollinaire quotes --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CFCDev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cfcdev?hl=en -~----------~----~----~----~------~----~------~--~---
