Performance Improvements Using Dynamic Performance Stubs
Date
2011
Authors
Trapp, Peter
Journal Title
Journal ISSN
ISSN
DOI
Volume Title
Publisher
De Montfort University
Peer reviewed
Abstract
This thesis proposes a new methodology to extend the software performance engineering process.
Common performance measurement and tuning principles mainly target to improve the software
function itself. Hereby, the application source code is studied and improved independently of the
overall system performance behavior. Moreover, the optimization of the software function has to be
done without an estimation of the expected optimization gain. This often leads to an under- or overoptimization,
and hence, does not utilize the system sufficiently.
The proposed performance improvement methodology and framework, called dynamic performance
stubs, improves the before mentioned insufficiencies by evaluating the overall system performance
improvement. This is achieved by simulating the performance behavior of the original software
functionality depending on an adjustable optimization level prior to the real optimization. So, it
enables the software performance analyst to determine the systems’ overall performance behavior
considering possible outcomes of different improvement approaches. Moreover, by using the
dynamic performance stubs methodology, a cost-benefit analysis of different optimizations regarding
the performance behavior can be done.
The approach of the dynamic performance stubs is to replace the software bottleneck by a stub. This
stub combines the simulation of the software functionality with the possibility to adjust the
performance behavior depending on one or more different performance aspects of the replaced
software function. A general methodology for using dynamic performance stubs as well as several
methodologies for simulating different performance aspects is discussed. Finally, several case
studies to show the application and usability of the dynamic performance stubs approach are
presented.
Description
Keywords
performance stubs, performance simulation functions, simulated software functionality, time behaviour, data cache memory, main memory, multi-threaded / multi-core