The quality of software is measured by its performance, such as a short response time to perform a given task. However, despite frequent updates, various problems can undermine the performance of a computer program and ruin the experience of its users. To correct the underlying flaws, computer scientists perform a variety of tests that have the disadvantage of being expensive. Weiyi Shang, a professor in the Department of Computer Science and Software Engineering at Concordia University, has developed a novel approach to remedy this situation.
Called PerfJIT, this automated method provides a real-time estimate of the impact of a given source code change on the overall performance of a software product. To do this, the scientist and his team rely on changes made in previous versions of the software to predict the impact of future changes of the same nature. This history is accessible through the software’s data warehouse repository. The PerfJIT approach was tested on popular open-source software such as Hadoop, Apache Cassandra and OpenJPA.
Weiyi Shang and his collaborators’ predictions proved to be 90% accurate, indicating that their model does indeed have the ability to discriminate between situations that affect performance and those that do not. They also ranked the parts of source code that, when modified, most affect the overall performance of the software. The similarity between this ranking and one based on theory alone is 85%, which again is quite good. The results of this work have been published in several academic journals.