advertisement
Premier Club Log In/Registration
  Include Code  Search Tips
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   SKILLBUILDING  |   TIP BANK  |   SOURCEBANK  |   FORUMS  |   NEWSLETTERS
Browse DevX
Do you believe continuous performance can benefit the code your development team produces? What obstacles do you anticipate in implementing the practice?
Partners & Affiliates
advertisement
advertisement
Average Rating: 3.5/5 | Rate this item | 2 users have rated this item.
 Print Print
 
Continuous Performance: A Best Practice to Ensure Faster Code
Continuous performance is a new practice for detecting and fixing performance problems from the early stages of software development. Learn how to implement this process, which drives code that's cleanly factored and easier to read and maintain. 

advertisement
ontinuous integration is the practice of conducting code builds at least once a day to catch small integration problems before they grow into show stoppers. The more often programmers test a fully integrated system, the more opportunities they have to check the functional integrity of their applications—which leads to better products. Development teams all over the world are adopting this best practice.

Continuous integration also has a hidden benefit: it sets teams up to find and fix performance problems. The trouble with performance is nobody cares about it until there's a problem, and by the time a performance issue makes its presence known it's often very difficult to find and fix. Programming teams who practice continuous integration have the advantage of being able to test performance on a regular and automated basis.

Consider the seven key steps in the typical development process:

  1. Planning
  2. Coding
  3. Compiling
  4. Unit testing
  5. Acceptance testing
  6. System testing
  7. Performance testing

Long-running queries, unnecessary executions, excessive results sets, and other performance issues usually don't surface until the acceptance testing phase—the fifth stage of development—or later. Making matters worse, teams usually don't see those problems as a priority and don't deal with them until much later, when the application moves out of QA with a punch list of lag times that must be corrected. As a result, programmers can spend weeks finding and fixing performance problems, sometimes spending as much as 20 percent of the development process in an abysmal bug hunt (based on statistical feedback from a survey of the IronGrid user base). Sluggish performance can also lead to design changes, an increasingly difficult prospect as the investment in code grows. Quite often all this leads to late delivery or, if that's not an option, shipping poorly performing code.

Continuous performance can be just as beneficial as performing unit tests with every build.
To address performance problems earlier in the development process, teams can implement a new practice called continuous performance, which borrows from the continuous integration concept to establish a specific and timesaving process for detecting and fixing performance problems.

For developers who practice continuous integration, some of the fundamental aspects of continuous performance will sound familiar:

  • Test performance at least nightly, just as unit tests confirm functionality. This "seize the build" approach ensures that programmers have frequent opportunities to check performance as the application grows.
  • Reduce the amount of code that requires testing and tuning, which cuts down performance-tuning time. As with unit tests, performance tests are easier to apply to smaller bits of code. Testing with every build therefore makes sense both for functionality and for performance. Continuous performance, like other forms of automated testing, drives code that's cleanly factored and easier to read and maintain.
  • Minimize variances in performance specifications. The more closely an application adheres to performance specs as lines of code mount, the easier it is to manage performance throughout the development process.
  • Improve performance of the final product. Performance degradation worsens over time, so keeping performance in check with every build results in faster code on the back end.
  • Sustain competitiveness with better-performing applications. The output of every development team, whether an in-house app or a major commercial software release, directly impacts the relative success of their organization.
  • Get more efficient. Continuous performance lets you capture requirements in automated test cases. Instead of writing extra code that might improve performance, programmers can focus on performance only when it's needed and where it's most appropriate.

Any process change sounds like a lot of work at first, but here's the good news: implementing continuous performance doesn't have to be painful, and it can be just as beneficial as performing unit tests with every build.

Page 1 of 3
advertisement
  Next Page: Establishing a Process
Page 1: IntroductionPage 3: Tools: The Final Step
Page 2: Establishing a Process 
advertisement
Advertising Info  |   Member Services  |   Permissions  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About


JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Microsoft Article: 7.0, Microsoft's Lucky Version?
Microsoft Article: Hyper-V--The Killer Feature in Windows Server 2008
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Windows Server 2008
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES