Requirements for Performance Optimization

graphics/requirements_icon.gif

Only one requirement key is implemented in this iteration (see Table 10.1). Performance improvements can become quite complex, and despite ever-faster computers, performance issues can be observed in almost all types of programs. For example, in image-processing or database applications, in which a lot of data is accessed or processed, performance usually is a big constraint. So far, the implementation of the photo editor application has not been designed for performance but for convenience and fast development.

Table 10.1. Refined Requirement Description

Requirement

Type

Summary

P:editor_optimizations

Performance

The application shall be profiled to uncover possible bottlenecks. On the basis of the profiling results, we will decide upon improvements that are implemented in this iteration. The overall goal of this development cycle is to provide better interactivity and to improve the performance of the image-processing algorithms.

Usually it is a good practice not to consider performance constraints when you first implement a feature. This does not mean that you don't consider performance but rather that you implement the functionalities without spending too much time on performance. When you have developed a working product, you then analyze the whole system to identify any bottlenecks. This practice makes perfect sense because it is very difficult to predict the performance of various subsystems that work together at implementation time. In many cases, guesswork by developers or management turns out to be wrong anyway, in which case you have spent valuable time in improving the performance at the wrong spot.

The first step in making performance improvements is to identify the bottlenecks of the system. To do that, it is advisable to use a profiling tool. Even though people are often tempted to guess what the bottlenecks in a system are, just as often they are wrong. Using a profiling tool is therefore highly recommended and saves the embarrassment of fixing bottlenecks that are not actually the major performance problems at all.

Introducing .NET

Introducing Software Engineering

A .NET Prototype

Project Planning

The Photo Editor Application

GDI+ Graphics Extensions

Advanced GDI+ Operations

Dynamic Loading of Components

Accessing System Resources

Performance Optimization, Multithreading, and Profiling

Building the Web Application with ASP.NET

Security and Database Access

Product Release



. NET-A Complete Development Cycle
.NET-A Complete Development Cycle
ISBN: 0321168828
EAN: 2147483647
Year: 2005
Pages: 123

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