Creating and preserving locality of Java']Java applications at allocation and garbage collection times

被引:23
|
作者
Shuf, Y
Gupta, M
Franke, H
Appel, A
Singh, JP
机构
[1] IBM Corp, Thomas J Watson Res Ctr, Yorktown Hts, NY 10598 USA
[2] Princeton Univ, Dept Comp Sci, Princeton, NJ 08544 USA
关键词
languages; algorithms; performance; experimentation; !text type='Java']Java[!/text; JVM; locality; memory management; run-time systems; memory allocation; garbage collection; object co-allocation; object placement; heap traversal; locality based graph traversal; prolific types;
D O I
10.1145/583854.582422
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The growing gap between processor and memory speeds is motivating the need for optimization strategies that improve data locality. A major challenge is to devise techniques suitable for pointer-intensive applications. This paper presents two techniques aimed at improving the memory behavior of pointer-intensive applications with dynamic memory allocation, such as those written in Java. First, we present an allocation time object placement technique based on the recently introduced notion of prolific (frequently instantiated) types. We attempt to co-locate, at allocation time, objects of prolific types that are connected via object references. Then, we present a novel locality based graph traversal technique. The benefits of this technique, when applied to garbage collection (GC), are twofold: (i) it improves the performance of GC due to better locality during a heap traversal and (ii) it restructures surviving objects in a way that enhances locality. On multiprocessors, this technique can further reduce overhead due to synchronization and false sharing. The experimental results, on a well-known suite of Java benchmarks (SPECjvm98 [26], SPECjbb2000 [27], and jOlden [4]), from an implementation of these techniques in the Jikes RVM [1], are very encouraging. The object co-allocation technique improves application performance by up to 21% (10% on average) in the Jikes RVM configured with a non-copying mark-and-sweep collector. The locality-based traversal technique reduces GC times by up to 20% (10% on average) and improves the performance of applications by up to 14% (6% on average) in the Jikes RVM configured with a copying semi-space collector. Both techniques combined can improve application performance by up to 22% (10% on average) in the Jikes RVM configured with a non-copying mark-and-sweep collector.
引用
收藏
页码:13 / 25
页数:13
相关论文
共 50 条
  • [41] TRINI: an adaptive load balancing strategy based on garbage collection for clustered Java']Java systems
    Portillo-Dominguez, A. Omar
    Perry, Philip
    Magoni, Damien
    Wang, Miao
    Murphy, John
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (12): : 1705 - 1733
  • [42] Real-Time Garbage Collection for a Multithreaded Java Microcontroller
    Matthias Pfeffer
    Theo Ungerer
    Stephan Fuhrmann
    Jochen Kreuzinger
    Uwe Brinkschulte
    Real-Time Systems, 2004, 26 : 89 - 106
  • [43] A novel buffer cache scheme using Java']Java Card object with high locality for efficient Java']Java Card applications
    Choi, Won-Ho
    Jeon, Ha-Yong
    Rosholt, Rhys
    Jung, Gwang
    Jung, Min-Soo
    ADVANCES IN HYBRID INFORMATION TECHNOLOGY, 2007, 4413 : 500 - +
  • [44] Memory power optimization of Java']Java-based embedded systems exploiting garbage collection information
    Manuel Velasco, Jose
    Atienza, David
    Olcoz, Katzalin
    JOURNAL OF SYSTEMS ARCHITECTURE, 2012, 58 (02) : 61 - 72
  • [45] A performance comparison between stop-the-world and multithreaded concurrent generational garbage collection for Java']Java
    Lo, CTD
    Srisa-An, W
    Chang, JM
    CONFERENCE PROCEEDINGS OF THE 2002 IEEE INTERNATIONAL PERFORMANCE, COMPUTING, AND COMMUNICATIONS CONFERENCE, 2002, : 301 - 308
  • [46] Object allocation and memory contention study of Java']Java multithreaded applications
    Huang, W
    Qian, Y
    Srisa-an, W
    Chang, JM
    CONFERENCE PROCEEDINGS OF THE 2004 IEEE INTERNATIONAL PERFORMANCE, COMPUTING, AND COMMUNICATIONS CONFERENCE, 2004, : 375 - 382
  • [47] Quantitative Evaluation of Thread-Local Garbage Collection Efficiency for Java
    A. Yu. Filatov
    V. V. Mikheev
    Programming and Computer Software, 2019, 45 : 1 - 11
  • [48] Secure garbage collection: Preventing malicious data harvesting from deallocated Java']Java objects inside the Dalvik VM
    Anikeev, Maxim
    Freiling, Felix C.
    Goetzfried, Johannes
    Mueller, Tilo
    JOURNAL OF INFORMATION SECURITY AND APPLICATIONS, 2015, 22 (81-86) : 81 - 86
  • [49] Lightweight and Block-level Concurrent Sweeping for Java']JavaScript Garbage Collection
    Kim, Hongjune
    Bak, Seonmyeong
    Lee, Jaejin
    ACM SIGPLAN NOTICES, 2014, 49 (05) : 155 - 164
  • [50] Towards garbage collection mechanism for RTSJ-oriented embedded Java Processor
    Hu, Guang
    Chai, Zhilei
    Zhao, Wenke
    Tu, Shiliang
    Proceedings - 10th IEEE International Conference on Computer and Information Technology, CIT-2010, 7th IEEE International Conference on Embedded Software and Systems, ICESS-2010, ScalCom-2010, 2010, : 1312 - 1316