Performance and Scalability
In today’s economy a wide variety of business scenarios make many different demands on the performance of software with a different aspect of what is perceived as good performance for each scenario.
Performance can be considered both from a system point of view and a user point of view. While system administrators are interested in achieving required system throughput within a given IT budget, end users demand a reasonable response time when interacting with software systems. Acceptable response times are related to the content of the business process. These challenges are relevant for custom application development projects as well.
Performance refers to the total effectiveness of a computer system, including throughput, individual response time, and availability. Programming for good performance means making reasonable use of critical resources, keeping response time at a minimum, taking into consideration aspects of network communication, and producing software that is scalable.
Scalability, in most general terms, means the degree to which a business scenario, component, or system can be expanded (or reduced) in size, volume, or number of users served and still continue to function properly and predictably. In other words, scalability refers to the predictable resource consumption of a software application under different system loads (increasing multiuser or parallel load) while keeping response time within a reasonable range.
Larger loads can be balanced with more hardware without the response time getting worse. A distinction is commonly made between:
Scalability is a mandatory prerequisite for sizing, and sizing is an important parameter for IT landscape planning and implementation.