Unintrusive performance profiling and testing in software development
1University of Oulu, Faculty of Information Technology and Electrical Engineering, Department of Information Processing Science, Information Processing Science
|PDF Full Text (PDF, 3.3 MB)
Performance is a complex topic in software development. Performance is a result of various interconnected properties of software and hardware. Risks and damages of badly performing software are well known and visible. Still, performance considerations are not thoroughly embedded to whole development life-cycle. Many projects start to consider performance only when issues emerge. Fixing performance problems at late phases of development can be very difficult and expensive. When performance problems emerge, most important goal is to determine root causes of issues. Instrumenting software can be effective way to measure and analyse software, but if not implemented during development, it can be limited and laborious. Unintrusive software profilers don’t require any modifications to the profiled software to be used. Profilers can provide various information about the software and the environment. Performance testing aims to validate and verify that performance targets of a project are achieved. Regression testing is well known method for assuring that regressions are not introduced to the software during development. Performance regression testing has similar targets for performance. This thesis explores usage of performance profilers and performance regression testing in UpWind project. UpWind is a sail boat chart navigation software project conducted in University of Oulu. Evaluation study in context of Design Science Research is used as a research method. In this thesis navigation algorithm of UpWind project was profiled using OProfile and Valgrind profilers. Profiling provided new information about performance behaviour of UpWind project and also new insights about performance profiling. In order to prevent future performance regressions in UpWind project, performance tests and performance regression testing process were drafted. Performance tests were implemented using Qt framework’s QTestLib.
© Janne Sakko, 2014. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.