Space-and time-efficient implementation of the Java']Java object model

被引:0
|
作者
Bacon, DF [1 ]
Fink, SJ [1 ]
Grove, D [1 ]
机构
[1] IBM Corp, Thomas J Watson Res Ctr, Yorktown Hts, NY 10598 USA
来源
关键词
D O I
暂无
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
While many object-oriented languages impose space overhead of only one word per object to support features like virtual method dispatch, Java's richer functionality has led to implementations that require two or three header words per object. This splice overhead increases memory usage and attendant garbage collection costs, reduces cache locality, and constrains programmers who might naturally solve a problem by using large numbers of small objects. In this paper, we show that with careful engineering a high-performance virtual machine can instantiate most Java objects with only a single-word object header. The single header word provides fast access to the virtual method table, allowing for quick method invocation. The implementation represents other per-object data (lock state, hash code, and garbage collection flags) using heuristic compression techniques. The heuristic retains two-word headers, containing thin lock state, only for objects that have synchronized methods. We describe the implementation of various object models in the IBM Jikes Research Virtual Machine, by introducing a pluggable object model abstraction into the virtual machine implementation. We compare an object model with a two-word header with three different object models with single-word headers, Experimental results show that the object header compression techniques give a mean space savings of 7%, with savings of up to 21%. Compared to the two-word headers, the compressed space-encodings result in application speedups ranging from -1.5% to +2.2%. Performance on synthetic micro-benchmarks ranges from +23% due to benefits from reduced object size, to -12% on a stress test of virtual method invocation.
引用
收藏
页码:111 / 132
页数:22
相关论文
共 50 条
  • [21] Proposal of fuzzy object oriented model in extended JAVA']JAVA
    Pereira, Wilmer
    Professional Practice in Artificial Intelligence, 2006, 218 : 191 - 200
  • [22] Utilization of Similarity Metric in the Implementation of an Object Recognition Algorithm using Java']Java
    Saad, Fadzliana
    Stotzka, Rainer
    WORLD CONGRESS ON ENGINEERING, WCE 2010, VOL I, 2010, : 646 - 650
  • [23] Implementation and evaluation of real-time Java']Java threads
    Miyoshi, A
    Kitayama, T
    Tokuda, H
    18TH IEEE REAL-TIME SYSTEMS SYMPOSIUM, PROCEEDINGS, 1997, : 166 - 175
  • [24] Run-time optimizations for a Java']Java DSM implementation
    Veldema, R
    Hofman, RFH
    Bhoedjang, RAF
    Bal, HE
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2003, 15 (3-5): : 299 - 316
  • [25] Design and implementation of Java']Java just-in-time compiler
    Ding, YX
    Mei, J
    Cheung, H
    JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, 2000, 15 (06) : 584 - 590
  • [26] A reconfigurable concurrent function block model and its implementation in real-time Java']Java
    Brennan, RW
    Zhang, XK
    Xu, YF
    Norrie, DH
    INTEGRATED COMPUTER-AIDED ENGINEERING, 2002, 9 (03) : 263 - 279
  • [27] Efficient implementation of Tate pairing on a mobile phone using Java']Java
    Kawahara, Yuto
    Takagi, Tsuyoshi
    Okamoto, Eiji
    2006 INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY, PTS 1 AND 2, PROCEEDINGS, 2006, : 1247 - 1252
  • [28] EFFICIENT IMPLEMENTATION OF ANONYMOUS CREDENTIALS ON JAVA']JAVA CARD SMART CARDS
    Sterckx, Michael
    Gierlichs, Benedikt
    Preneel, Bart
    Verbauwhede, Ingrid
    2009 FIRST IEEE INTERNATIONAL WORKSHOP ON INFORMATION FORENSICS AND SECURITY (WIFS), 2009, : 106 - +
  • [29] Efficient implementation of tate pairing on a mobile phone using Java']Java
    Kawahara, Yuto
    Takagi, Tsuyoshi
    Okamoto, Eiji
    COMPUTATIONAL INTELLIGENCE AND SECURITY, 2007, 4456 : 396 - +
  • [30] Implementation of Object Web using Java and CPRBA
    Xue, Tao
    Gao, Ling
    Sun, Yaru
    Liu, Dean
    2000, Shenyang Inst Comput Technol, China (21):