Run-time performance testing in Java
Testování výkonu za běhu v Javě
diploma thesis (NOT DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/62560Identifiers
Study Information System: 143335
Collections
- Kvalifikační práce [11322]
Author
Advisor
Referee
Tůma, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
15. 6. 2015
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Fail
Keywords (Czech)
testování výkonu, testování jednotek, Stochastic Performance Logic, JavaKeywords (English)
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. Standartní testy jednotek jsou rozšířeny o výkonnostní předpoklady a vyhodnoceny za skutečného běhu reálné aplikace. Instrumentace kódu je dynamicky přidána a odebrána kvůli automatické úpravě produkčního kódu. 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 kvůli snížení vlivu měření. Výsledky ukazují, že pro aplikace náročné na procesor lze takto dosáhnout až 3-krát nižšího maximálního okamžitého vlivu měření než při měření všech metod najednou. Powered by TCPDF (www.tcpdf.org)
This work focuses on relative comparisons of individual methods 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. This 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, number of concurrently measured method is dynamically changed and measurement code is removed as soon as required data are obtained to avoid high overhead. The results show that for processor demanding application this approach may bring up to 3-times lower overhead peaks than measuring all methods at once. Powered by TCPDF (www.tcpdf.org)