Localisation of Performance Bugs in Multithreaded Programs
DescriptionBug localisation is one of the most difficult tasks in program development. Ineffective bug localisation severely affects the development schedule to serve users. As energy efficiency is becoming a prime concern in the implementation of many programs, problematic performance issues of programs are increasingly intolerable by users. This situation places heavy stress on the developers to locate performance bugs in software programs. On the other hand, real-world software applications such as MySQL, Chrome, and Thunderbird are all multithreaded. Effective fault localisation techniques should be applicable to locate faults in multithreaded programs.Both static and dynamic bug localisation techniques have been proposed. They either use predefined patterns to mine the source code of the program or contrast between executions with performance problems against executions without such problems to correlate program entities to performance anomalies. These techniques could not adequately handle applications suffering from performance issues with unseen patterns nor do they work well when the notion of executions with problematic performance issue is fuzzy or changes over time even for the same application. Unfortunately, the list of such patterns could be endless, and the same pattern may identify a true performance bug in one application but produce a false positive for another, as one size typically cannot fit all. Moreover, the distinction between executions with and without performance problems could be unscientific, because executions without performance bugs may still exercise the same fragment of code that causes performance issues in other executions.In this project, we propose to develop a novel performance bug localisation framework for multithreaded programs. It does not use any pattern and does not need to distinguish executions with and without performance issues. Our framework is based on trend estimation and curve formulation over a set of executions to identify the code locations that cause problematic performance behavior. To the best of our knowledge, no prior project by other researchers ever proposes to investigate performance bugs or other types of bugs in this direction. This project will provide a framework for the developers to combat against the performance issues of the programs that they are developing or maintaining.
|Effective start/end date||1/01/14 → 21/06/18|