Dynamic Performance Analysis Techniques as Software Engineering Assistive Tools

Date and time: 
Thu, Jun 13 2019 - 10:00am to Fri, Jun 14 2019 - 9:45am
220 Deschutes
Ziyad Alsaeed
University of Oregon
  • Michal Young (Chair)
  • Stephen Fickas
  • Chris Wilson

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.