Unintrusive performance profiling and testing in software development
Sakko, Janne (2014-11-20)
Sakko, Janne
J. Sakko
20.11.2014
© 2014 Janne Sakko. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-201411292032
https://urn.fi/URN:NBN:fi:oulu-201411292032
Tiivistelmä
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.
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.
Kokoelmat
- Avoin saatavuus [32204]