In computing, a performance problem is idenfitied by slowed responses or by complete failures to respond. These usually occur because of an increase in system load, and are the result of some part of the system reaching a limit on its ability to respond. This part of the system, and the limit itself, are referred to as a bottleneck.

A handful of techniques are used to improve performance. Among them are code optimization, load balancing, caching strategy, and distributed computing. See each section below.

Code optimization

Enhancing performance by rewriting specific portions of a program to run faster is one form of code optimization.

Caching strategy

Just like anything else, modern computer systems are the result of trade-offs between cost and performance. Increasingly fast data storage systems are increasingly expensive. Thus, large disk drives are cheap; RAM is faster, but more expensive; off-CPU cache memory is faster yet even more expensive, and on-CPU cache is the fastest but most expensive form of storage.

The time required to repeatedly read the same data from a disk storage unit (hard drive) may be significantly decreased by temporarily storing that data in a small area of RAM. Similarly, repeated RAM reads may be improved by temporarily storing that data in off-CPU cache, and off-CPU cache read times may be improved by storing that data in on-CPU cache.

The methods used to determine which data is stored in progressively faster storage are collectively called caching strategies.

Distributed computing / load balancing

To be written

Performance tuning is the activity of improving the performance of a system. This is typically a computer application, but the same methods can be applied to economic markets, bureaucracies or other complex systems. The motivation for such activity is called a performance problem, which can be real or anticipated. Most systems will respond to increased load with some degree of decreasing performance. A system's ability to accept higher load is called scalability, and modifying a system to handle a higher load is synonymous to performance tuning.

Systematic tuning follows these steps:

  1. Assess the problem and establish numeric values that categorize acceptable behaviour.
  2. Measure the performance of the system before modification.
  3. Identify the part of the system that is critical for improving the performance. This is called the bottleneck.
  4. Modify that part of the system to remove the bottleneck.
  5. Measure the performance of the system after modification.

This is an instance of the measure-evaluate-improve-learn cycle from quality assurance.

See also computer science, queueing theory, simulation.


In organizational development (OD), a performance problem is found any time there is a discrepancy between the sought-after results and the actual results. This can occur at various levels:

  • individual performance problems
  • team performance problems
  • unit (e.g. department or division) performance shortfalls
  • organizational performance problems

There are many causes of performance problems including:
  • interference
  • attitude
  • skills