Early performance estimates for a new software system aid the design process by providing feedback when design decisions can be easily revised. Unfortunately, constructing a performance model of a distributed and concurrent software system can require significant effort. We propose an approach that reduces the model building effort by providing easy specification of performance test cases, empirical estimates for model parameters, automated model generation, and support for different types of models. A prototype is used to describe an objectbased system, for which causal traces (angio traces) are recorded during execution. The traces are then processed into sequences of resource demands (workthreads), aggregated into system execution descriptions (workthread classes), and combined to generate performance models. The technique can also be applied at other stages of the development process, including the redesign of existing software. IntroductionIt should be possible to study a new software system's performance behavior under alternative designs and scenarios, especially at an early stage when design decisions can be easily revised. As the design evolves, increasing detail should be easily incorporated into the performance model to allow more complex performance concems to be examined. We propose a prototype based approach that has these qualities.The two main approaches to combining software design and performance engineering are empirical and predictive. The fully empirical approach is to implement the system in some form, measure its performance, and then (if necessary) modify the software. The predictive approach, as described by Smith in [22] and 1231, derives a model of software execution patterns (called an execution graph) from the design, constructs a second model to solve for performance predictions, and then uses the predictions to guide the modification of the design. This gives earlier warnings and supports more effective adjustments, which can be followed by an empirical study of the completed software. A weakness of the predictive approach arises in determining the performance parameters of the execution graph, without an implementation as a guide. Experience can be a help, and Smith provides guidelines for assigning values, but this has limitations. To derive the parameters the software execution path needs to be examined. This is difficult to do in object-based systems because it is obscured by polymorphism, inheritance, and class structures. The performance parameters may also depend on system data values that interact in complex ways which are difficult to predict and are resolved only during execution. This is particularly true of what we call the frequency parameters, which determine the frequency of traversal of data-dependent choices and loops.We consider how to obtain better estimates by combining the empirical and predictive approaches. The software design is prototyped at an early stage, so that the main execution paths are defined but the full functional detail of the paths may be incom...
Performance predictions for software designs are needed to give early warnings of problems such as resource saturation or excessive delays. A wideband approach to performance prediction is one which can be applied to a wide range of design descriptions and parameters, ranging from incomplete early descriptions and estimates, to target system measurement data. The paper describes a practical development of such an approach, designed to be integrated with an existing software design environment called ObjecTime. It uses a performance model to make predictions about performance measures such as the average time an actor or processor is busy, the communication overhead of a scenario, or the delays in processing an input event. Automation shrinks the cost and time for model building, and synchronizes the design and model as the design develops. The wideband approach can be applied throughout the software life-cycle, from early sketchy designs until after deployment. PositioningThere is an increasingly evident need for better methods and tools for predicting and improving the performance of software products. The difficulty is most acute in the early stages of design, or for extrapolation beyond the present status of the design (e.g., for scalability analysis). Performance models are the natural way to provide predictions for a range of environmental conditions or design alternatives and these predictions can be used to detect problems and suggest corrections. However, modelling is at present too slow and too costly. We describe a new, evolutionary, low cost wideband approach to performance analysis using models, including how it can be integrated into a typical high-level design environment. The domain of application of this environment is real-time interactive software, such as communications software. In this domain there are significant uncertainties in the execution demands and delays, and performance evaluation is statitisical, based on means, variances and percentiles. Hard deadlines, in which missing a deadline means a system failure, are not a major concern here. Intuition is a poor guide to creating a design with good performance. There are too many factors, and it is confusing that some of them apply only for certain situations or data configurations. Real-time software designers often have only the vaguest idea of the performance impact of certain key design decisions. It is not uncommon in practice to find that performance predictions made by design teams are off by an order of magnitude and more! Even when formal performance predicting models of software are actually constructed they may not be trusted.Under such circumstances, designing for performance is a question of trial and error where the intuition and experience of the design team plays a key role. Putative configurations are proposed, the corresponding performance models derived and evaluated, and the prediction results compared against requirements and previous results. To make this process more effective as much of it should be automated as pos...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.