Bachelor Thesis BCLR-0140

BibliographyFlaig, Albert: Dynamic Instrumentation in Kieker Using Runtime Bytecode Modification.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Bachelor Thesis No. 140 (2014).
51 pages, english.
CR-SchemaD.4.8 (Operating Systems Performance)

Software systems need constant quality assurance - this holds true in the development phase as well as the production phase. An aspect of quality is the performance of specific software modules. Kieker provides a framework to measure and diagnose runtime information of instrumented software methods. In its current state, Kieker only allows inserting probes before application start.

This thesis proposes an alternative concept to extend the functionality of Kieker regarding instrumentation. The alternative approach allows inserting probes during runtime. This is done using a technology known under the term Bytecode Instrumentation (BCI) which enables to change the binary code of classes during execution. Thus the software is "reprogrammed" during runtime to provide the measurement logic. The approach is carried over of another monitoring framework called AIM (Adaptable Instrumentation and Monitoring), which already features an established implementation of this technology. Hence, this thesis aims to connect the benefits of both frameworks.

This alternative concept is compared against Kieker's traditional way of performance measurement by the means of an experimental evaluation. The evaluation aims to investigate the impact on, (1) the overhead, (2) the turnaround time and (3) the reliability in terms of lost transactions. The results show a reduction of overhead, unfortunately at the cost of turnaround time. The reliability also drops due to an increase of lost transactions.

Full text and
other links
PDF (894018 Bytes)
Department(s)University of Stuttgart, Institute of Software Technology, Software Reliability and Security
Superviser(s)von Hoorn, André
Entry dateDecember 1, 2014
   Publ. Computer Science