Locating Performance Changes in Source Code
Locating Performance Changes in Source Code
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/11894Identifiers
Study Information System: 46102
Collections
- Kvalifikační práce [11325]
Author
Advisor
Referee
Adámek, Jiří
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software systems
Department
Department of Software Engineering
Date of defense
28. 1. 2008
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
V regresivním testování výkonnosti je často komplikované najít změnu ve zdrojovém kódu, která způsobila změnu výkonnosti detekovanou dílčím výkonnostním testem. Protože změn je typicky hodně, ruční prohledání všech změn a rozhodnutí, jestli některá konkrétní změna způsobila změnu výkonnosti ve velkých projektech, může být časově náročné. Práce analyzuje možné metody pro zrychlení tohoto hledání. Zaměřuje se detailněji na dvě z nich. První metoda je mít software, který rozumí zdrojovému kódu a dokáže rozhodnout, které změny mohou potencionálně ovlivnit výkon. Například změny v komentáři výkon ovlivnit nemohou. Druhá metoda je vybrat změny ve zdrojovém kódu, který byl spouštěn během výkonnostního testu. Metody jsou implementovány do Mono Regression Benchmarking Suite jako důkaz funkčnosti návrhu. V této diplomové práci je rozebráno více možností, jak usnadnit programátorovi hledání a dvě z nich zmíněné výše jsou implementovány.
In regression benchmarking, it is often complicated to locate the source code modification which caused a performance change detected by a particular benchmark. Manually examining all modifications and resolving if some specific modification has caused the performance change in large projects can be timeconsuming. The thesis analyses possible methods for making that examination faster; focusing in more detail on two of them. The first is to have software that can understand the source language and can resolve which modification can potentially cause performance changes. For example, modifications in comments can not affect performance. The second is selecting source changes that were executed during the test. As a proof of concept, the methods are implemented in Mono Regression Benchmarking Suite. In this master thesis, more solutions how to increase time efficiency of the search are discussed and the two noticed above are implemented.