{"title":"Speeding Up Type-Specific Instrumentation for the Analysis of Complex Systems","authors":"Andrea Rosà, Walter Binder","doi":"10.1109/ICECCS.2017.14","DOIUrl":null,"url":null,"abstract":"Dynamic analysis is crucial for understanding and improving the performance of complex systems. Our work focuses on dynamic analyses on the Java Virtual Machine (JVM). Such analyses often rely on bytecode instrumentation to weave monitoring code into selected methods, so as to collect the desired metrics at runtime. Unfortunately, existing instrumentation frameworks offer limited capabilities. On the one hand, frameworks such as AspectJ that perform the weaving within the observed JVM cannot weave monitoring code within the Java class library, considerably limiting completeness of AspectJ-based analyses. On the other hand, frameworks such as DiSL that perform the weaving in a separate process offer full bytecode coverage, but cannot access certain reflective information that is available in AspectJ. Here, we present an extension of DiSL to expose reflective supertype information within the instrumentation process. This is challenging, because the observed application may make use of custom classloaders and the loaded classes are generally only known upon termination of the application. Our framework guarantees full bytecode coverage, while providing reflective supertype information. We show that our framework can significantly speed up dynamic analyses wrt. the current DiSL release.","PeriodicalId":114056,"journal":{"name":"2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICECCS.2017.14","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Dynamic analysis is crucial for understanding and improving the performance of complex systems. Our work focuses on dynamic analyses on the Java Virtual Machine (JVM). Such analyses often rely on bytecode instrumentation to weave monitoring code into selected methods, so as to collect the desired metrics at runtime. Unfortunately, existing instrumentation frameworks offer limited capabilities. On the one hand, frameworks such as AspectJ that perform the weaving within the observed JVM cannot weave monitoring code within the Java class library, considerably limiting completeness of AspectJ-based analyses. On the other hand, frameworks such as DiSL that perform the weaving in a separate process offer full bytecode coverage, but cannot access certain reflective information that is available in AspectJ. Here, we present an extension of DiSL to expose reflective supertype information within the instrumentation process. This is challenging, because the observed application may make use of custom classloaders and the loaded classes are generally only known upon termination of the application. Our framework guarantees full bytecode coverage, while providing reflective supertype information. We show that our framework can significantly speed up dynamic analyses wrt. the current DiSL release.