Martin Fowler is well known for his work on refactoring and software engineering.
In his very good book:
Martin Fowler: patterns of enterprise application architecture. Addison Wesley 2003.
he has some discussion of performance which usually cover the following issues:
- response time
- responsiveness
- latency
- throughput
A number of measures of a system are good indicators for the performance of a system regarding these issues:
- the load
- load sensitivity
- efficiency
- capacity
To make these notions clear, it is important to have some definition:
- response time
- the time it take to a system to process a request
- responsiveness
- the time that the system takes to acknowledge a request
- latency
- the minimum time that the system needs to perform any task even if the task has nothing to be done
- throughput
- how much work can be done in a given amount of time
We define the measures presented above:
- load
- how much strain are put on the resources (for example how many users ( or processes ) are logged on (or running)
- load sensitivity
- an indicator of the variation in the response time depending on the load
- efficiency
- the efficiency is the performance (i.e, either throughput or response time) divided by resources
- capacity
- indicate the maximum effective throughput or load for the system
In order to discuss performance, he also describe two kind of processing power scalability, i.e how good a system reacts when the size of the system grows in processing power. Adding more processing power to a server is an example of
vertical scalability (or the system is scaled up), where as adding more servers is an example of
horizontal scalability (or the system scales out).