Additional Resources

 < Free Open Study > 

cc2e.com/2585

This section contains resources releated to performance improvement in general. For additional resources that discuss specific code-tuning techniques, see the "Additional Resources" section at the end of Chapter 26.

Performance

Smith, Connie U. and Lloyd G. Williams. Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Boston, MA: Addison-Wesley, 2002. This book covers software performance engineering, an approach for building performance into software systems at all stages of development. It makes extensive use of examples and case studies for several kinds of programs. It includes specific recommendations for Web applications and pays special attention to scalability.

cc2e.com/2592

Newcomer, Joseph M. "Optimization: Your Worst Enemy." May 2000, http://www.flounder.com/optimization.htm. Newcomer is an experienced systems programmer who describes the various pitfalls of ineffective optimization strategies in graphic detail.

Algorithms and Data Types

cc2e.com/2599

Knuth, Donald. The Art of Computer Programming, vol. 1, Fundamental Algorithms, 3d ed. Reading, MA: Addison-Wesley, 1997.

Knuth, Donald. The Art of Computer Programming, vol. 2, Seminumerical Algorithms, 3d ed. Reading, MA: Addison-Wesley, 1997.

Knuth, Donald. The Art of Computer Programming, vol. 3, Sorting and Searching, 2d ed. Reading, MA: Addison-Wesley, 1998.

These are the first three volumes of a series that was originally intended to grow to seven volumes. They can be somewhat intimidating. In addition to the English description of the algorithms, they're described in mathematical notation or MIX, an assembly language for the imaginary MIX computer. The books contain exhaustive details on a huge number of topics, and if you have an intense interest in a particular algorithm, you won't find a better reference.

Sedgewick, Robert. Algorithms in Java, Parts I-IV, 3d ed. Boston, MA: Addison-Wesley, 2002. This book's four parts contain a survey of the best methods of solving a wide variety of problems. Its subject areas include fundamentals, sorting, searching, abstract data type implementation, and advanced topics. Sedgewick's Algorithms in Java, Part V, 3d ed. (2003) covers graph algorithms. Sedgewick's Algorithms in C++, Parts I-IV, 3d ed. (1998), Algorithms in C++, Part V, 3d ed. (2002), Algorithms in C, Parts I-IV, 3d ed. (1997), and Algorithms in C, Part V, 3d ed. (2001) are similarly organized. Sedgewick was a Ph.D. student of Knuth's.

cc2e.com/2506

Checklist: Code-Tuning Strategies

Overall Program Performance

  • Have you considered improving performance by changing the program requirements?

  • Have you considered improving performance by modifying the program's design?

  • Have you considered improving performance by modifying the class design?

  • Have you considered improving performance by avoiding operating system interactions?

  • Have you considered improving performance by avoiding I/O?

  • Have you considered improving performance by using a compiled language instead of an interpreted language?

  • Have you considered improving performance by using compiler optimizations?

  • Have you considered improving performance by switching to different hardware?

  • Have you considered code tuning only as a last resort?

Code-Tuning Approach

  • Is your program fully correct before you begin code tuning?

  • Have you measured performance bottlenecks before beginning code tuning?

  • Have you measured the effect of each code-tuning change?

  • Have you backed out the code-tuning changes that didn't produce the intended improvement?

  • Have you tried more than one change to improve performance of each bottleneck that is, iterated?


 < Free Open Study > 


Code Complete
Code Complete: A Practical Handbook of Software Construction, Second Edition
ISBN: 0735619670
EAN: 2147483647
Year: 2003
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net