【24h】

Practical Virtual Method Call Resolution for Java

机译:实用的虚拟方法调用Java的分辨率

获取原文

摘要

This paper addresses the problem of resolving virtual method and interface calls in Java bytecode. The main focus is on a new practical technique that can be used to analyze large applications. Our fundamental design goal was to develop a technique that can be solved with only one iteration, and thus scales linearly with the size of the program, while at the same time providing more accurate results than two popular existing linear techniques, class hierarchy analysis and rapid type analysis. We present two variations of our new technique, variable-type analysis and a coarser-grain version called declared-type analysis. Both of these analyses are inexpensive, easy to implement, and our experimental results show that they scale linearly in the size of the program. We have implemented our new analyses using the Soot frame-work, and we report on empirical results for seven bench-marks. We have used oru techniques to build accurate call graphs for complete applications (including libraries) and we show that compared to a conservative call graph built using class herarchy analysis, our new variable-type anlaysis can remove a significant number of nodes (methods) and call edges. Further, our results shwo that we can improve upon the compression obtained using rapid type analysis. We also provide dynamic measurements of monomorphic call sites, focusing on the benchmark code excluding libraries. We demonstrate that when considering only the benchmark code, both rapid type analysis and our new declared-type analysis do not add much precision over class hierarchy analysis. However, our finer-grained variable-type analysis does resolve significantly more call sites, particularly for programs with mroe complex uses of objects.
机译:本文解决了java字节码中解析虚拟方法和接口呼叫的问题。主要重点是新的实用技术,可用于分析大型应用。我们的根本设计目标是开发一种可以只有一次迭代解决的技术,从而随着程序的大小线性缩放,而同时提供比两个流行的现有线性技术,类层次分析和快速的更准确的结果。类型分析。我们提出了我们新技术的两个变体,可变型分析和称为声明类型分析的较粗糙晶粒版本。这两种分析都是便宜的,易于实施,我们的实验结果表明,它们在程序的大小上线性缩放。我们已经实施了我们的新分析,使用烟灰框架工作,我们向七个台式标记的实证结果报告。我们使用奥鲁技术来构建完整的应用程序准确的调用关系图(包括库),我们表明,与使用类herarchy分析建立了一个保守的调用图,我们的新的变量类型anlaysis可以删除节点(方法)一个显著数量和呼叫边缘。此外,我们的结果SHWO,我们可以改善使用快速型分析获得的压缩。我们还提供单数呼叫站点的动态测量,重点关注除库的基准代码。我们证明,在考虑仅考虑基准代码时,快速类型分析和我们的新声明类型分析都不会在课堂层次分析上添加很多精度。但是,我们更精细的变量类型分析确实可以解决更多的呼叫网站,特别是对于具有对象的Mroe复杂使用的程序。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号