Are there any resources on fine tuning a cakephp app? I am building my first app with 100,000+ users expected in the first 6 months. I am not sure where to even start optimizing cakephp.
Chad On Wed, Jan 7, 2009 at 10:09 AM, teknoid <[email protected]> wrote: > > It's been said before, but I'll say it again.... > index.html is the fastest framework of them all when it comes to > outputting "hello world". > > If you've optimized the SQL, enabled caching on all tiers of your > application and made sure you've followed the rules (i.e. no > requestAction() or aggressive model loading)... Attempted lazy loading > on the models, tried both Containable and Linkable behviors... > > and now you are finding that Dispatcher is slowing things down. You > really have 2 options: > > 1. Make sure your app is profitable so you can add some hardware (or > cloud-ware) > 2. Post a realistic question with specific problem you are having here > or IRC and someone will help you out. > > I firmly believe if cake 1.1 can more or less painlessly serve mozilla > add-ons it can certainly do the same for the rest of us. > > Don't waste time on benchmarking requests per seconds, it would be > much better spent on fine-tuning your app. > > > On Jan 7, 8:52 am, Martin Westin <[email protected]> wrote: >> My 2¢ on this subject: >> >> I have done a lot bit of profiling on my own apps. I have also >> compared Cake 1.1 with 1.2 when migrating an allication, but not >> compared another framework to Cake. >> What I can generalize from these tests is that using the common simple >> test-app probably 1.1 is faster than 1.2. Probably these benchmarks >> are correct when they do similar comparisons and find that Cake 1.2 is >> "slow" compared to other frameworks. >> >> What I have also discovered is that when I do the same benchmarks >> using "heavy data" things look very different. When I say heavy data I >> am talking about a filemanager dealing with meta-data form 3'000 files >> and not just 20 odd files on my development system. I am talking about >> a reporting system loaded with 1.2 million transactions, not 120 >> transactions. I am talking about 400'000 user accounts and not 40. >> >> It can be a real pain getting that much data into your app. I have >> been lucky to have had access to large datasets I can copy and do >> tests on. I wouldn't like to try making 400'000 unique usernames >> myself :) >> >> In these cases I have seen that CakePHP 1.2 has been extremely good at >> handling the load. Many things that slow down the small application >> speeds up the "big" application. If my 40 users were processed in 0.4 >> instead of 0.2 seconds, that must be compared to how my 400'000 uses >> were processed in 4sec instead of running out of memory after 2 >> minutes of execution. (no real figures, btw) >> >> The developers of Cake have been very good at identifying and building >> tools that help an applications as it grows. Sure I can manually write >> all the same optimized queries and do a lot of things to make 1.1 (or >> some other framework) process in similar times, but in Cake 1.2 all >> these things are there, built-in and tested, ready to go. I remember >> one of these memory problems from this summer. When the problem >> occurred online, on a live server (OMG!) I could very quickly identify >> and correct a "sloppy find" in a matter of minutes and then all was >> well again. I am not suggesting anyone wait for real users to discover >> their bottle-necks, but it is a good indicator of how easy it is to >> "optimize" a Cake application. >> >> This has been a big anecdotal, I know. I don't have any real bench- >> results to share unfortunately. But I wanted to try to make the point >> that Cake 1.2 may not be the fastest from the outset but when you load >> your app down with more and more stuff Cakes keeps its speed really >> well. >> >> That would make an interesting benchmark. Making a few associations >> between a few Models and benching with a small 20KB database. Then >> testing with the database weighing in at 200MB or so. It would be cool >> to see the curve of each framework as the data started piling up. >> >> @Mathew >> The most important tool for optimization has in my experience been >> Containable (and "recursive = -1") which can really limit the amount >> of data loaded with each request. My second tip is to try to use few >> "foreach($found_data as $one)". For lopps can really kill you when >> there are a few hundred thousand items in the array :) >> >> /Martin >> >> On Jan 3, 4:42 am, gearvOsh <[email protected]> wrote: >> >> > These benchmarks dont mean anything. >> >> > Do a benchmark using a full fledged system (perhaps a whole social >> > community) and see how the work. Simply hello world pages are nothing >> > because no frameworks are used for that. > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" 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/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
