Stack allocation and synchronization optimizations for Java']Java using escape analysis

被引:43
|
作者
Choi, JD
Gupta, M
Serrano, MJ
Sreedhar, VC
Midkiff, SP
机构
[1] IBM Corp, Thomas J Watson Res Ctr, Yorktown Hts, NY 10598 USA
[2] Purdue Univ, Sch Elect & Comp Engn, W Lafayette, IN 47907 USA
关键词
algorithms; languages; connection graphs; escape analysis; points-to graph;
D O I
10.1145/945885.945892
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This article presents an escape analysis framework for Java to determine (1) if an object is not reachable after its method of creation returns, allowing the object to be allocated on the stack, and (2) if an object is reachable only from a single thread during its lifetime, allowing unnecessary synchronization operations on that object to be removed. We introduce a new program abstraction for escape analysis, the connection graph, that is used to establish reachability relationships between objects and object references. We show that the connection graph can be succinctly summarized for each method such that the same summary information may be used in different calling contexts without introducing imprecision into the analysis. We present an interprocedural algorithm that uses the above property to efficiently compute the connection graph and identify the nonescaping objects for methods and threads. The experimental results, from a prototype implementation of our framework in the IBM High Performance Compiler for Java, are very promising. The percentage of objects that may be allocated on the stack exceeds 70% of all dynamically created objects in the user code in three out of the ten benchmarks (with a median of 19%); 11% to 92% of all mutex lock operations are eliminated in those 10 programs (with a median of 51%), and the overall execution time reduction ranges from 2% to 23% (with a median of 7%) on a 333-MHz PowerPC workstation with 512 MB memory.
引用
收藏
页码:876 / 910
页数:35
相关论文
共 50 条
  • [21] On synchronization of threads in the Java']Java language using SynchExpressions library
    Fryz, Lukasz
    Kotulski, Leszek
    [J]. INTERNATIONAL JOURNAL OF COMPUTER SCIENCE AND NETWORK SECURITY, 2006, 6 (7A): : 18 - 22
  • [22] Advanced thread synchronization in Java']Java using interaction expressions
    Heinlein, C
    [J]. OBJECTS, COMPONENTS, ARCHITECTURES, SERVICES, AND APPLICATIONS FOR A NETWORKED WORLD, 2003, 2591 : 345 - 365
  • [23] Escape analysis for object oriented languages.: Application to Java']Java™
    Blanchet, B
    [J]. ACM SIGPLAN NOTICES, 1999, 34 (10) : 20 - 34
  • [24] Stack operations folding in Java']Java processors
    Chang, LC
    Ton, LR
    Kao, MF
    Chung, CP
    [J]. IEE PROCEEDINGS-COMPUTERS AND DIGITAL TECHNIQUES, 1998, 145 (05): : 333 - 340
  • [25] Profiling and Analysis of Object Lazy Allocation in Java']Java Programs
    Shi, Jianjun
    Ji, Weixing
    Zhang, Lulu
    Gao, Yujin
    Zhang, Han
    Qing, Duzheng
    [J]. 2016 17TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD), 2016, : 591 - 596
  • [26] IRM enforcement of Java']Java stack inspection
    Erlingsson, U
    Schneider, FB
    [J]. 2000 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, PROCEEDINGS, 2000, : 246 - 255
  • [27] A design pattern for optimizations in data intensive applications using ABS and JAVA']JAVA 8
    Serbanescu, V.
    Azadbakht, K.
    de Boer, F.
    Nagarajagowda, C.
    Nobakht, B.
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2016, 28 (02): : 374 - 385
  • [28] Comparative Analysis for Web Applications Based on REST Services: MEAN Stack and Java']Java EE Stack
    Sayago Heredia, Jaime
    Chango Sailema, Gustavo
    [J]. IBERO-AMERICAN SYMPOSIUM ON COMPUTER PROGRAMMING JOINTLY HELD WITH THE INTERNATIONAL CONGRESS ON TECHNOLOGY EDUCATION, 2018, : 82 - 100
  • [29] Effective synchronization removal for Java']Java
    Ruf, E
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (05) : 208 - 218
  • [30] Removing unnecessary synchronization in Java']Java
    Bogda, J
    Hölzle, U
    [J]. ACM SIGPLAN NOTICES, 1999, 34 (10) : 35 - 46