Optimizing type-specific instrumentation on the JVM with reflective supertype information

Andrea Rosà, Walter Binder
{"title":"Optimizing type-specific instrumentation on the JVM with reflective supertype information","authors":"Andrea Rosà,&nbsp;Walter Binder","doi":"10.1016/j.jvlc.2018.10.007","DOIUrl":null,"url":null,"abstract":"<div><p><em>Reflective supertype information (RSI)</em><span> 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.</span></p></div>","PeriodicalId":54754,"journal":{"name":"Journal of Visual Languages and Computing","volume":"49 ","pages":"Pages 29-45"},"PeriodicalIF":0.0000,"publicationDate":"2018-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.jvlc.2018.10.007","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Visual Languages and Computing","FirstCategoryId":"1085","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S1045926X18302040","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"Computer Science","Score":null,"Total":0}
引用次数: 6

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.

查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
使用反射超类型信息优化JVM上的特定类型检测
反射超类型信息(RSI)对于Java虚拟机(JVM)上的许多基于检测的类型特定分析非常有用。一方面,虽然在执行插入程序的同一JVM进程中执行插入时可以获得此类信息,但进程内插入严重限制了分析的字节码覆盖范围。另一方面,在单独的进程中执行插入可以实现完全的字节码覆盖,但通常不提供完整的RSI,这通常需要在插入插入的程序中插入昂贵的运行时类型检查。在这篇文章中,我们提出了一种新的技术,可以在一个单独的仪器过程中准确地具体化完整的RSI。这是具有挑战性的,因为观察到的应用程序可以使用自定义类加载器,并且在一个应用程序执行中加载的类通常只有在应用程序终止时才是已知的。我们在动态分析框架DiSL的扩展中实现了我们的技术。由此产生的框架保证了完全的字节码覆盖,同时提供RSI。在任务探查器上的评估结果表明,我们的技术可以实现高达6.24×wrt的加速。通过在检测代码中进行运行时类型检查,可以进行完全字节码覆盖的分析。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
Journal of Visual Languages and Computing
Journal of Visual Languages and Computing 工程技术-计算机:软件工程
CiteScore
1.62
自引率
0.00%
发文量
0
审稿时长
26.8 weeks
期刊介绍: The Journal of Visual Languages and Computing is a forum for researchers, practitioners, and developers to exchange ideas and results for the advancement of visual languages and its implication to the art of computing. The journal publishes research papers, state-of-the-art surveys, and review articles in all aspects of visual languages.
期刊最新文献
Editorial Board Error recovery in parsing expression grammars through labeled failures and its implementation based on a parsing machine Visual augmentation of source code editors: A systematic mapping study Optimizing type-specific instrumentation on the JVM with reflective supertype information Qualitative representation of spatio-temporal knowledge
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1