Dynamic Performance Analysis Techniques as Software Engineering Assistive Tools
Ziyad Alsaeed
Committee: Michal Young (chair), Stephen Fickas, Chris Wilson
Area Exam(Jun 2019)
Keywords:

Non-functional requirements of typical applications tend to get less attention during software development compared to functional requirements. Software performance, in particular, is one that gets less attention during development, but ahead of shipping apparent performance flaws must be fixed. Dynamic software performance analysis attempts to assist developers locating performance flaws or confirm their understanding of the overall performance behavior.

We evaluate fundamental and recent performance analysis techniques. Moreover, we highlight the strengths and weaknesses of performance analysis tools in terms of efficiency, comprehensiveness, exploration and understandably. Finding inputs that trigger unanticipated performance flaws is an area requiring more work. We review machine learning, genetic algorithms and fuzzing as the three major approaches used to find special performance inputs. Machine learning techniques may be useful for finding data that triggers poor performance.