Performance analysis and prediction from computer program source code

IV Thomas Trask Wetmore · 1983

Performance analysis of software systems generally occurs only after full implementation is completed and system testing has begun. Not until this point can it be determined whether or not a system meets its performance specifications. If it does not, further analysis is required to find portions which must be redesigned. In some situations a costly redesign of the entire system may be the only alternative. However, if methods could be found whereby the performance of software systems could be analyzed and predicted during the design and coding phases then the problem spots could be identified early and the designer would have confidence that the final system will meet its performance specifications. This dissertation addresses the issue of incorporating software performance analysis and prediction into software design. The main areas addressed are those of analyzing and predicting the performance of systems expressed in conventional higher level languages, and providing computerized tools useful during design for performing the analysis. A complete analysis technique based on the control flow structure of a module is developed from which static portions of cost equations can be automatically generated. A programming language named PPL is described in which the dynamic information required to fully express the cost of a module can be provided by the designer. PPL also includes the facility for defining abstract data types using the notion of a performance state which allows for dynamic state-based analysis. A computerized tool called the PPL Processor is described that was developed to compile modules written in PPL into their performance cost equations. Using the Processor numerous modules are processed and examples presented. It is concluded that compile-time performance analysis is an important area of software engineering which can be accomplished with the technology that is available today, and that tools to provide the analysis should be included in software design and development environments.

Read the paper · More papers on PaperTik