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 条
  • [1] Garbage collection for large memory Java']Java applications
    Krall, A
    Tomsich, P
    HIGH-PERFORMANCE COMPUTING AND NETWORKING, PROCEEDINGS, 1999, 1593 : 895 - 905
  • [2] Reducing Java garbage collection pause times
    Unisys Corporation, United States
    Int. Conf. Comput. Meas. Group, 1600,
  • [3] A Java']Java garbage collection workload
    Lee, WH
    PROCEEDINGS OF THE 7TH JOINT CONFERENCE ON INFORMATION SCIENCES, 2003, : 561 - 566
  • [4] Java']Java garbage collection - a generic solution?
    Meehan, A
    Lunney, T
    INFORMATION AND SOFTWARE TECHNOLOGY, 2001, 43 (02) : 151 - 155
  • [5] Garbage collection in an embedded Java']Java virtual machine
    Cha, Chang-Il
    Kim, Hyung-Jun
    Hwang, Kyu-Jeong
    Kim, Sang-Wook
    Lee, Sang-Yun
    Won, Hee-Sun
    KNOWLEDGE-BASED INTELLIGENT INFORMATION AND ENGINEERING SYSTEMS, PT 1, PROCEEDINGS, 2006, 4251 : 443 - 450
  • [6] Analysis and Optimizations of Java']Java Full Garbage Collection
    Li, Haoyu
    Wu, Mingyu
    Chen, Haibo
    9TH ASIA-PACIFIC SYSTEMS WORKSHOP 2018 (APSYS'18), 2018,
  • [7] Java']Java garbage collection for real time systems
    Petit-Bianco, A
    DR DOBBS JOURNAL, 1998, 23 (10): : 20 - +
  • [8] Tuning garbage collection in an embedded Java']Java environment
    Chen, G
    Shetty, R
    Kandemir, M
    Vijaykrishnan, N
    Irwin, MJ
    Wolczko, M
    EIGHTH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, PROCEEDINGS, 2002, : 92 - 103
  • [9] Real-time garbage collection for Java']Java
    Schoeberl, Martin
    Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing, Proceedings, 2006, : 424 - 432
  • [10] Controlling garbage collection and heap growth to reduce the execution time of Java']Java applications
    Brecht, T
    Arjomandi, E
    Li, C
    Pham, H
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 353 - 366