Optimizing type-specific instrumentation on the JVM with reflective supertype information. (December 2018)
- Record Type:
- Journal Article
- Title:
- Optimizing type-specific instrumentation on the JVM with reflective supertype information. (December 2018)
- Main Title:
- Optimizing type-specific instrumentation on the JVM with reflective supertype information
- Authors:
- Rosà, Andrea
Binder, Walter - Abstract:
- Abstract : highlights: We allow inspecting reflective supertype information during instrumentation. We allow reification of classloader namespaces in an instrumentation process. We enable speedups up a factor of 6.24x for dynamic analyses with full code coverage. Abstract: Reflective supertype information (RSI) is useful for many instrumentation-based type-specific analyses on the Java Virtual Machine (JVM). On the one hand, while such information can be obtained when performing the instrumentation within the same JVM process executing the instrumented program, in-process instrumentation severely limits the bytecode coverage of the analysis. On the other hand, performing the instrumentation in a separate process can achieve full bytecode coverage, but complete RSI is generally not available, often requiring the insertion of expensive runtime type checks in the instrumented program. In this article, we present a novel technique to accurately reify complete RSI in a separate instrumentation process. This is challenging, because the observed application may make use of custom classloaders and the loaded classes in one application execution are generally only known upon termination of the application. We implement our technique in an extension of the dynamic analysis framework DiSL. The resulting framework guarantees full bytecode coverage, while providing RSI. Evaluation results on a task profiler demonstrate that our technique can achieve speedups up to a factor ofAbstract : highlights: We allow inspecting reflective supertype information during instrumentation. We allow reification of classloader namespaces in an instrumentation process. We enable speedups up a factor of 6.24x for dynamic analyses with full code coverage. Abstract: Reflective supertype information (RSI) is useful for many instrumentation-based type-specific analyses on the Java Virtual Machine (JVM). On the one hand, while such information can be obtained when performing the instrumentation within the same JVM process executing the instrumented program, in-process instrumentation severely limits the bytecode coverage of the analysis. On the other hand, performing the instrumentation in a separate process can achieve full bytecode coverage, but complete RSI is generally not available, often requiring the insertion of expensive runtime type checks in the instrumented program. In this article, we present a novel technique to accurately reify complete RSI in a separate instrumentation process. This is challenging, because the observed application may make use of custom classloaders and the loaded classes in one application execution are generally only known upon termination of the application. We implement our technique in an extension of the dynamic analysis framework DiSL. The resulting framework guarantees full bytecode coverage, while providing RSI. Evaluation results on a task profiler demonstrate that our technique can achieve speedups up to a factor of 6.24× wrt. resorting to runtime type checks in the instrumentation code for an analysis with full bytecode coverage. … (more)
- Is Part Of:
- Journal of visual languages & computing. Volume 49(2018)
- Journal:
- Journal of visual languages & computing
- Issue:
- Volume 49(2018)
- Issue Display:
- Volume 49, Issue 2018 (2018)
- Year:
- 2018
- Volume:
- 49
- Issue:
- 2018
- Issue Sort Value:
- 2018-0049-2018-0000
- Page Start:
- 29
- Page End:
- 45
- Publication Date:
- 2018-12
- Subjects:
- Dynamic analysis -- Reflective information -- Bytecode instrumentation -- Java virtual machine
Visual programming languages (Computer science) -- Periodicals
Visual programming (Computer science) -- Periodicals
Programming languages (Electronic computers) -- Semantics -- Periodicals
Langages de programmation visuelle -- Périodiques
Programmation visuelle -- Périodiques
Langages de programmation -- Sémantique -- Périodiques
Programming languages (Electronic computers) -- Semantics
Visual programming (Computer science)
Visual programming languages (Computer science)
Periodicals
Electronic journals
005 - Journal URLs:
- http://www.sciencedirect.com/science/journal/1045926X ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.jvlc.2018.10.007 ↗
- Languages:
- English
- ISSNs:
- 1045-926X
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 5072.495200
British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 8895.xml