|
YOUR FEEDBACK Did you read today's front page stories & breaking news?
SYS-CON.TV SYS-CON.TV WEBCASTS |
TOP COLDFUSION LINKS Editorial Speed!
Speed!
By: Robert Diamond
May. 1, 2003 12:00 AM
One of the topics that comes up most often when talking with CF developers about ColdFusion is performance. Recently, I assisted two CF developer friends with some site speed problems that they were having. One of them is a beginner, a developer who couldn't understand why his site was running slow, or why his Web hosting company was yelling at him that his pages were spiking CPU usage on their server (the horror!). He runs a fairly well-trafficked Web site, and is truly representative of the fact that CFML is a language that will let a novice get up and running fairly quickly, with just an idea and a little bit of technical know-how to put together a professional looking site. It also shows that while CF enables folks to do this, a few months down the line, as site traffic starts to build - most will hit a bit of a roadblock. After a few hours of work going through his code, I had his site up and running significantly faster, mostly from fixing some of the usual "rookie mistakes." Among the most notable of these: every query involved a 'select *' grabbing much more data than necessary; most pages were selecting the same data over and over again using some of the strangest CFLOOPs that I've ever seen, many running the same query several times over instead of using joins or relational databases, and of course, not a single thing on his site was cached. Fixing all of these was relatively straightforward, and later that week he received a lovely thank you e-card from his Web site provider. The second friend's site was a bit more tricky (more advanced developers always get themselves into bigger problems), and required more than just run-of-the-mill scans over code. Everything looked okay at a quick glance, and it wasn't until we started to use CF's built-in query debuggers to display execution times that we began to get to the bottom of his problem. Ultimately, we were able to improve things by using a combination of new stored procedures in his SQL database, better passing along of session variables to eliminate redundant queries, and a run-through of the settings in CF Admin to tweak the number of pages processing. Again, he had no queries cached. The bottom line here is that the ColdFusion server can often run only as well as its worst queries and its most poorly written pages. There's a never-ending list of tips here each month in CFDJ, as well as all over Macromedia's and the other major CF sites out there, for improving code and site performance. All of them are worth looking at. I recommend setting aside a day, and focusing just on improving site performance, going through all that code you wrote while starting out and never went back to fix, etc. It's all good info, and you, your server, and your customers will appreciate it. A few small items of note from around the industry... The fascinating progress over at Macromedia.com has continued this month, as they give an unprecendented look "under the hood." Not only is it refreshing to see a company using their own products and putting their challenges out front, but for those of us whose livings are intertwined with Macromedia's products, it ranks near the top of the most useful case studies we've ever seen. On the CFDJ front - voting for the ColdFusion Developer's Journal 2003 Readers' Choice Awards is now under way. Hundreds of developers have cast their votes so far, and polls will be open through the end of August. Don't delay, come vote today! ( www.sys-con.com/coldfusion/readerschoice2003) One other note - only a few months after I said I would, I've begun blogging. Follow my nutty little world at www.robertdiamond.com. YOUR FEEDBACK
CFDJ LATEST STORIES . . .
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||