Identifying What to Modify

To identify performance and footprint problems, it is prudent to carefully review the design and requirements documentation of a system to find out about its operating parameters. Also, it is a good idea to look at external indications that something might have gone wrong during the design or implementation phases of the project. The next section focuses on telltale external symptoms encountered in the field.

Looking at the Symptoms

Hidden problems can exist within a system, even when it manages to function within its requirements. These problems can appear later—for instance, when requirements become stricter, amounts of input data increase, or the number of users goes up. The earlier you manage to identify and eliminate possible problems (preventive maintenance), the lower the cost will be.

Consider the following checklist to quickly determine the best area to focus modifications and optimizations:

  • Look at how similar systems perform (with the same hardware). Likely bottlenecks can occur, for instance, in performance or the amount of available memory.

  • Determine when, how, and where the system slows down:

  • Slowdowns affecting an entire system usually occur from hardware problems such as too few resources (memory, disk space, and so on), not enough processing speed (CPU speed, number of coprocessors), a slow OS, or inefficient resource management systems (memory and file management).

  • Slowdowns resulting from specific interactions with the system usually require a bit of investigation. You'll have to determine exactly what happens during these actions. For example, a slow or faulty network connection can completely destroy system performance.

  • Notice whether problems occur (or get worse) as time passes. Lower performance after extended use of a system is likely the result of bugs or design errors rather than specific performance problems. For more information, refer to the section Design Flaws, Faulty Algorithms, and Bugs later in this chapter.

  • Notice whether the system disproportionately slows down while it handles larger amounts of data. This sort of failing performance is usually due either to improper system design or to memory fragmentation/leakage. It is advisable to immediately do a profile to determine the cause (as discussed in Chapter 4, "Tools and Languages").

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset