PERFORMANCE 3.1 OVERVIEW While the practicality delivered by a software system application is clearly necessary, it's not the sole concern. Over its time period, the price of a software package is set additional by however well it achieves its objectives for quality attributes like performance, reliability/availability or maintainability than by its practicality. This chapter focuses on software system systems that meet performance objectives. Performance is that the degree to that a computer code or element meets its objectives for timeliness. Thus, performance is any characteristic of a software package that you just might, in theory, live by sitting at the pc with a timer in your hand. There are two important dimensions to software performance:responsiveness and scalability [Mullender 00]. Responsiveness is the ability of a system tomeet its objectives for response time or throughput. In real-time systems,responsiveness is a measure of how fast the system responds to an event, orthe number of events that can be processed in a given time. Scalability is theability of a system to continue to meet its response time or throughputobjectives as the demand for the software functions increases. Scalability isan increasingly important aspect of today’s software systems [Menasce et al 10].Performance is crucial to the success of today’s software package systems. However, several software package product fail to satisfy their performance objectives once they square measure at first created. Fixing these issues is expensive and causes schedule delays, price overruns, lost productivity, broken client relations, incomprehensible market windows, lost revenues, and a bunch of alternative difficulties [Pfisher 04]. In extreme cases, it should not be attainable to mend performance issues while not in depth design and re-implementation. In those cases, the project either becomes AN infinite sink for time and cash, or it is, mercifully, canceled. Performance can't be retrofitted; it should be designed into software package from the start. The “make it run, build it run right, build it run fast” approach is dangerous. Recent interest in software architectures hasunderscored the importance of architecture in achieving software qualityobjectives, including performance. While decisions made at every phase ofthe 22 development process are important, architectural decisions have thegreatest impact on quality attributes such as modifiability, reusability,reliability, and performance [Boehm &In 05]. If the software execution model indicates that there are no problems,analysts proceed to construct and solve the system execution model. Thismodel is a dynamic model that characterizes the software performance in thepresence of factors, such as other workloads or multiple users, which couldcause contention for resources [Aleti et al 09]. The results obtained by solving the softwareexecution model provide input parameters for the system execution model.Solving the system execution model provides the following additionalinformation: – Refinement and clarification of the performance requirements – More precise metrics that account for resource contention – Sensitivity of performance metrics to variations in workload composition – Identification of bottleneck resources – Comparative data on options for improving performance via: workloadchanges, software changes, hardware upgrades, and various combinationsof each – Scalability of the architecture and design: the effect of future growth onperformance – Identification of critical parts of the design – Assistance in designing performance tests – Effect of new software on service level objectives of other systemsThe system execution model represents the key computer resources as anetwork of queues. The Software Process Engineering (SPE) modeling process focuses on the system’s use cases and thescenarios that describe them. Where use-case-driven processes such as the Unified Process aredefined as part of requirements definition and are refinedthroughout the design process. From a development perspective, use casesand their scenarios provide a means of understanding and documenting thesystem’s requirements, architecture, and design. From a performanceperspective, use cases allow you to identify the workloads that aresignificant from a performance point of view, that is, the collections ofrequests made by the users of the system. The scenarios allow you to derivethe processing steps involved in each workload.The 23 SPE process includes the following steps. The activity diagram inFigure 8 captures the overall process. 3.1.1 Performance vs. Speed A idea concerning performance is that it equates to speed—that is, the notion that poor performance is salvaged just by victimization a lot of powerful processors or communication links with higher information measure. Quicker may be higher, except for several systems quicker isn't comfortable to attain timeliness. This is often notably true of period of time systems. The target of “fast computing” would be to reduce the typical latent period for a few clusters of services, whereas the target of period of time computing is to fulfill individual temporal arrangement needs of every service. Moreover, hardware mechanisms such as caching, pipelining and multithreading, which can reduce average response time, can make worst-case response times unpredictable [Balsamo et al 04]. “Predictability, not speed, is the foremost goal in real-time-system design”. In general, performance engineering is concerned with predictable performance—whether it is worst-case or average-case performance, Execution speed is only one factor [Gooijer 11]. 24 Fig 8: Activity diagram of SPE 25 3.1.2 Taxonomy Abstract Performance Model Besides the software development cycle to enhance the performance of the software process through Performance Engineering Process as shown in figure 9. Fig9: Performance Engineering Life Cycle The performance of a system stems from the character of the resources accustomed fulfill demands and the way shared resources area unit allotted once the multiple demands should be administered on constant resources. this kind of drawback is understood as a programming drawback and has been studied for years in analysis fields. For example, Conway [Conway 67]. Conway [Conway 67, p. 6] says a scheduling problem can describe by four types of information: 1. Jobs and operations to be processed 2. Number and types of machines 3. Disciplines that prohibit the style within which assignments are often created 4. The factors by that the schedule are going to be evaluated 26 From a modeling purpose of read, Smith [Smith et al 02] describes 5 kinds of knowledge required for constructing and evaluating computer code performance engineering models: • Performance needs - quantitative needs outlined in terms of events of interest and temporal arrangement constraints for responding to every event. • Behavior patterns and intensity - the amount of event streams1 and also the worst-case and steady-state arrival rates for every event stream • Computer code descriptions - the computer code operations dead in response to events. • Execution surroundings - the hardware devices and computer code services required to hold out the said computer code operations. • Resource usage estimates - resource needs for carrying computer code operations like processor execution time, I/O demands or memory needs.The points of view of Conway and Smith differ somewhat; nevertheless, both points of view call out • Performance concerns, such as criteria for evaluating the schedule, and timing constraints for responding to events • Performance factors, such as • Behavior patterns and intensity, resource usage, software descriptions, and jobs and operations, which characterize system demand • Execution environment and numbers and types of machines, which characterize the system • Performance ways, like synthesis and analysis that draw upon queuing theory, programing theory, and formal ways that area unit accustomed perceive the link between the factors and also the considerations. This is mirrored within the taxonomy shown in Figure 10. 27 Fig10: Performance Taxonomy 3.2 CONCERNS The performance considerations (or requirements) accustomed specify and assess the performance of the system area unit • Latency - however long will it go for reply to a selected event? • Output - what percentage events are often saw over a given interval of time? Capacity - what proportion demand are often placed on the system whereas continued to fulfill latency and output requirements? • Modes - however will the demand and resources amendment over time? What happens once system capability is exceeded and not all events are often saw during a timely manner? 28 3.2.1 Latency Latency refers to a quantity throughout that the response to a happening should be dead. The quantity defines a response window given by a point in time (minimum latency) associated an ending time (maximum latency). These will either be nominal as absolute times (time of day, for example) or offsets from a happening that occurred at some nominal time. The ending time is additionally called a point in time. Latency sub-concerns include: precedence (a specification for a partial or total ordering of event responses), interference (the variation within the time a computed result's output to the external setting from cycle to cycle), and criticality (the importance of the perform to the system). 3.2.2 Throughput Throughput refers to the quantity of event responses that are completed over a given observation interval [Liu et al 05]. This definition suggests that it's not ample to only specify a process rate, however that one or additional observation intervals ought to even be nominal. for instance, a system which will method a hundred and twenty transactions each hour may not guarantee that two transactions are processed each minute. maybe no transactions square measure processed throughout the primary half-hour and every one of the transactions square measure processed throughout the remaining half-hour. 3.3 FACTORS AFFECTING PERFORMANCE Performance could be a perform of the demand placed on the system, the kinds of resources employed by the system, and the way the system allocates those resources. Performance factors represent the necessary aspects of the system and its setting that influence the performance considerations. There square measure setting performance factors (demand) and system performance factors. • demand - what number events streams square measure there? What square measure the arrival rates related to every event stream? what's the resource usage related to responding to every event? • system - What square measure the properties of the computer hardware accustomed allotted resources, the properties of the code operations that comprise the responses to events and also the relationships between responses? 29 3.3.1 Demand Demand may be a characterization of what quantity of a resource is required. Demand may be thought of in terms of what quantity utilization a selected event needs. However, it's helpful to think about demand in terms of • Arrival pattern for every event stream and • Execution time necessities for responding to every event The arrival pattern and execution time ar vital since these ar 2 items of data which will be utilized by programming theory and/or queuing theory for predicting latency and/or output. The arrival pattern is either periodic or nonperiodic. • Periodic arrivals occur repeatedly at regular intervals of your time. • Nonperiodic arrivals occur repeatedly at irregular time intervals. The frequency of arrival may be finite by a minimum separation (also referred to as sporadic) or may be completed random. For execution times, the worst-case and best-case execution times may be wont to facilitate outline boundary-case behavior. Queuing supposed techniques specify execution times mistreatment chance distribution functions. 3.3.2 System Resources comprise a system and ar required to hold out event responses. we predict of the system in terms of • Kinds of resources • Computer code services for managing resources • Resource allocation Common resource varieties are: computer hardware, memory, I/O device, backplane bus, network, and knowledge object. Related to every form of resource there ar computer code services for managing the employment of the resource and resource allocation policies. it's on the far side the scope of this paper to debate all of those resource varieties. we are going to specialize in operative systems services and computer hardware programming. A primary 30 issue that influences the issues of performance is that the computer code services that are provided to assign resources and to supply an interface to resources. These computer code services are sometimes provided by the OS. For this discussion we are going to focus our attention on period operative systems, since period operative systems are expressly involved with time and so serve to spotlight a number of the vital problems. 3.4 METHODS Methods to attain performance embrace the following: Synthesis—methods won’t to synthesize (such as period style methodologies) a system or Smith’s computer code performance engineering philosophy as mentioned in [Smith 90]. Analysis—techniques wont to analyze system performance like queuing analysis and programming analysis. 3.4.1 Synthesis Smith [Smith et al 02, p. 14] advocates a philosophy of computer code performance engineering supposed to enhance instead of supersede alternative computer code engineering methodologies. The goal is to hold out the elemental engineering steps of understanding, creating, representing and evaluating, however to enhance these steps with an exact attention paid to performance. This manifests itself in developing models to represent the performance of the system early, and continuous analysis of the performance of the system because it evolves. 3.4.2 Analysis Performance analysis strategies appear to possess adult out of 2 separate faculties of thought, queuing theory and programming theory. Queuing theory — queuing theory may be wont to model systems joined or a lot of service facilities that perform services for a stream of inbound customers. Every arrival stream of shoppers is delineate employing a model. Every service facility contains a server and a queue for waiting customers. Service times for patrons also are delineating mistreatment random processes. Queuing analysis is usually involved with average case combination behaviors — which is suitable for performance capability coming up with and management data systems, as an example. However, once worst-case behavior is of interest, programming analysis can be a lot of acceptable. 31
© Copyright 2026 Paperzz