Funktsioonikutsete ajalugu kodeeriva Java agendi jõudluse tõstmine

Date

2016

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Funktsioonikutsete ajalugu, mida kasutajale trükitakse pinujäljena, on suureks abiks programmis toimuva vea täpse asukoha leidmiseks lähtekoodis. Sügavamate probleemide puhul on aga vaja programmi täitmist pikemalt jälgida ja oluliste sündmuste toimumisel nende funktsioonikutsete ajalugu salvestada. Kuna terve ajalugu on väga pikk, siis on mõistlik seda kodeerida. Selles magistritöös uuritakse ühte konkreetset kodeerimise algoritmi Lucce, tuues välja nii selle eeliseid teiste algoritmidega võrreldes kui ka probleeme jõudlusega. Eesmärgiks on selle algoritmi jõudlust tõsta ja sellel näitel tutvustada üldiseid ning Java agentidega seotud jõudluse tõstmise võtteid.
The idea behind calling context encoding algorithms is to efficiently build a call graph of an application in order to be able to give developers a call stack trace of any event at any point of the program execution. Having the information that calling context provides ena-bles developers to better interpret results of monitoring and profiling tools. In this paper, we discuss in greater detail the benefits of calling context encoding and the problems with current algorithms that are trying to construct calling context. We take an algorithm im-plemented as Java instrumentation agent - Lucce - and explain its promising possibilities, benefits over other similar algorithms, as well as its main performance problem. This thesis contributes to this field firstly by presenting an analysis of different methods of perfor-mance optimization and their applications to a Java agent, and secondly by applying these methods to the performance optimization of the Lucce algorithm and its Java implementa-tion.

Description

Keywords

Citation