Practical virtual method call resolution for Java']Java

被引:85
|
作者
Sundaresan, V [1 ]
Hendren, L [1 ]
Razafimahefa, C [1 ]
Vallée-Rai, R [1 ]
Lam, P [1 ]
Gagnon, E [1 ]
Godin, C [1 ]
机构
[1] McGill Univ, Sch Comp Sci, Sable Res Grp, Montreal, PQ H3A 2A7, Canada
关键词
D O I
10.1145/354222.353189
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 framework, and we report on empirical results for seven benchmarks. We have used our techniques to build accurate call graphs for complete applications (including libraries) and we show that compared to a conservative call graph built using class hierarchy analysis, our new variable-type analysis can remove a significant number of nodes (methods) and call edges. Further, our results show 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 more complex uses of objects.
引用
收藏
页码:264 / 280
页数:17
相关论文
共 50 条
  • [21] 'Even the Java']Java sparrows call your hair'
    Murray, Chris
    AMERICAN BOOK REVIEW, 2006, 27 (05) : 39 - 39
  • [22] Evaluating the Java']Java virtual machine as a target for languages other than Java']Java
    Gough, KJ
    Corney, D
    MODULAR PROGRAMMING LANGUAGES, PROCEEDINGS, 2001, 1897 : 278 - 290
  • [24] Minimizing Impact on Java']Java Virtual Machine via JAVA']JAVA Code Optimization
    Myalapalli, Vamsi Krishna
    Geloth, Sunitha
    2015 INTERNATIONAL CONFERENCE ON ENERGY SYSTEMS AND APPLICATIONS, 2015, : 19 - 24
  • [25] Java']Java™:: the practical virtuality of Internet programming
    MacKenzie, Adrian
    NEW MEDIA & SOCIETY, 2006, 8 (03) : 441 - 465
  • [26] Practical experience with an application extractor for Java']Java
    Tip, F
    Laffra, C
    Sweeney, PF
    Streeter, D
    ACM SIGPLAN NOTICES, 1999, 34 (10) : 292 - 305
  • [27] A study on an efficient pre-resolution method for embedded Java']Java system
    Yang, YS
    Jin, MS
    Jun, SI
    Jung, MS
    2004 IEEE SYMPOSIUM ON VIRTUAL ENVIRONMENTS, HUMAN-COMPUTRE INTERFACES AND MEASUREMENT SYSTEMS, 2004, : 20 - +
  • [28] Java']Java virtual machine doubles speed
    Wong, W
    ELECTRONIC DESIGN, 2001, 49 (21) : 30 - +
  • [29] The Java']Java virtual machine: A passing fad?
    Franz, M
    IEEE SOFTWARE, 1998, 15 (06) : 26 - +
  • [30] Thread Modeling in Java']Java Virtual Machine
    Wu Weimin
    Su Qing
    Li Kailun
    ICCSE 2008: PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION: ADVANCED COMPUTER TECHNOLOGY, NEW EDUCATION, 2008, : 438 - 441