Run-time performance testing in Java
Testování výkonu za běhu v Javě
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/81252Identifikátory
SIS: 167506
Kolekce
- Kvalifikační práce [10690]
Autor
Vedoucí práce
Oponent práce
Tůma, Petr
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
9. 9. 2015
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
testování výkonu, testování jednotek, Stochastic Performance Logic, JavaKlíčová slova (anglicky)
performance testing, unit testing, Stochastic Performance Logic, JavaPráce je zaměřena na relativní porovnávání výkonu jednotlivých metod. Základem je Stochastic Performance Logic, která například umožňuje vyjádřit, že běh jedné metody trvá nejvýše dvakrát déle než běh jiné metody. Tyto výsledky jsou přenositelnější než absolutní hodnoty. Standardní testy jednotek (metod) jsou rozšířeny o výkonnostní předpoklady a vyhodnoceny za skutečného běhu reálné aplikace. Produkční kód je automaticky upravován pomocí dynamicky přidávné a odebírané instrumentace. Pro instrumentaci je použit nástroj DiSL, což umožňuje hladce měřit i systémové třídy Javy. Metody jsou měřeny postupně, počet souběžně měřených metod se dynamicky mění a měřící kód je odstraněn, jakmile jsou získána potřebná data. Výsledky ukazují, že tímto způsobem lze snížit maximální okamžitý vliv měření na aplikaci oproti měření všech metod najednou. Srovnáním s nástrojem JMH se ukázalo, že vytvořený prototyp je schopen přesného měření metod běžících déle než 1 ms. Powered by TCPDF (www.tcpdf.org)
This work focuses on relative comparisons of individual method's performance. It is based on Stochastic Performance Logic, which allows to express, for example, that one method runs at most two times longer than another method. These results are more portable than absolute values. It extends standard unit tests with performance assumptions, which are evaluated during actual run-time of a released application. Dynamically added and removed instrumentation is used for automatic modification of the production code. Instrumentation part uses DiSL framework to be able to seamlessly measure even Java system classes. Methods are measured sequentially, the number of concurrently measured methods is dynamically changed and the measurement code is removed as soon as required data are obtained. The results show that this approach may bring appreciably lower overhead peaks than measuring all methods at once. The prototype was compared with JMH tool and the results show that it is able to accurately measure methods running longer than 1 ms. Powered by TCPDF (www.tcpdf.org)