Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Segregating heap objects by reference behavior and lifetime

Published: 01 October 1998 Publication History
  • Get Citation Alerts
  • Abstract

    Dynamic storage allocation has become increasingly important in many applications, in part due to the use of the object-oriented paradigm. At the same time, processor speeds are increasing faster than memory speeds and programs are increasing in size faster than memories. In this paper, we investigate efforts to predict heap object reference and lifetime behavior at the time objects are allocated. Our approach uses profile-based optimization, and considers a variety of different information sources present at the time of object allocation to predict the object's reference frequency and lifetime. Our results, based on measurements of six allocation intensive programs, show that program references to heap objects are highly predictable and that our prediction methods can successfully predict the behavior of these heap objects. We show that our methods can decrease the page fault rate of the programs measured, sometimes dramatically, in cases where the physical memory available to the program is constrained.

    References

    [1]
    Thomas Ball and James R. Larus. Efficient path profiling. In Proceedings of MICRO-29, Paris, France, December 1996.
    [2]
    David Barrett and Benjamin Zorn. Using lifetime predictors to improve memory allocation performance. In SIGPLAN'93 Conference on Programming Language Design and Implementation, pages 187-196, Albuquerque, June 1993.
    [3]
    Brad Calder, Dirk Grunwald, and Benjamin Zorn. Quantifying behavioral differences between C and C++ programs. Journal of Programming Languages, 2(4):313-351, 1994.
    [4]
    David A. Cohn and Satinder Singh. Predicting lifetimes in dynamically allocated memory. In Advances in Neural Information Processing Systems 9, 1996. To appear.
    [5]
    Robert Courts. improving locality of reference in a garbagecollecting memory management system. Communications of the ACM, 31(9):1128-1138, September 1988.
    [6]
    David Detlefs, Al Dosser, and Benjamin Zorn. Memory allocation costs in large C and C++ programs. Software-- Practice and Experience, 24(6):527-542, June 1994.
    [7]
    Amer Diwan, David Tarditi, and Eliot Moss. Memory sub. system performance of programs using copying garbage collection. In ACM SIGPLAN-SIGACT POPL'9,~, pages 1-14, Portland, Oregon, January 17-21, 1994. ACM Press.
    [8]
    James Gosling, Bill Joy, and Guy Steele. The,Java Language Specification. The Java Series. Addison Wesley, Reading, MA, 1997.
    [9]
    David Grove, Jeffrey Dean, Charles Garrett, and Craig Chambers. Profile-guided receiver class prediction. In Proceedings of the 1995 Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108-123, Austin, TX, October 1995.
    [10]
    Dirk Grunwald, Benjamin Zorn, and Robert Henderson. hnproving the cache locality of memory allocation. In A CM SIOPLAN PLDI'93, pages 177-186, Albuquerque, June 1993.
    [11]
    Mark D. Hill. Aspects of Cache Memory and Instruction Buffer Performance. PhD thesis, University of California at Berkeley, November 1987. Technical Report UCB/CSD 87/381.
    [12]
    Donald E. Knuth. Fundamental Algorithms, volume 1 of The Art of Computer Programming, chapter 2, pages 435- 451. Addison Wesley, Reading, MA, 2nd edition, 1973.
    [13]
    S. McFarling. Program optimization for instruction caches. In ASPLOS'89, pages 183-191, Boston, MA, April 1989.
    [14]
    David A. Moon. Garbage collection in a large Lisp system. In Conference Record of the 198J ACM Symposium on LISP and Functional Programming, pages 235-246, Austin, Texas, August 1984.
    [15]
    Judith B. Peachey, Richard B. Bunt, and Charles J. Colburn. Some empirical observations on program behavior with applications to program restructuring. IEEE Transactions on Software Engineering, SE-11(2):i88-193, February 1985.
    [16]
    Matthew L. Seidl and Benjamin G. Zorn. Predicting references to dynamically allocated objects. Technical Report CU-CS-826-97, Department of Computer Science, University of Colorado, Boulder, CO, January 1997.
    [17]
    Amitabh Srivastava and Alan Eustace. ATOM: A system for building customized program analysis tools. In A CM SIG- PLAN PLDI'9J, pages 196-205, Orlando, FL, June 1994.
    [18]
    C. J. Stephenson. Fast fits: New methods for dynamic storage allocation. In Proceedings of the Ninth ACM Symposium on Operating System Principles, pages 30-32, Bretton Woods, NH, October 1983.
    [19]
    K. Phong Vo. Vmalloc: A general and efficient memory allocator. Software Practice ~ Experience, 1996.
    [20]
    Tim A. Wagner, Vance Maverick, Susan Graham, and Michael Harrison. Accurate static estimators for program optimization. In Proceedings of the SIGPLAN'9d Conference on Programming Language Design and Implementation, pages 85-96, Orlando, FL, June 1994.
    [21]
    Paul R. Wilson, Michael S. Lain, and Thomas G. Moher. Caching considerations for generational garbage collection. In SIGPLAN Symposium on LISP and Functional Programming, San Francisco, California, June 1992.
    [22]
    Benjamin G. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, University of California at Berkeley, March 1989. Technical Report UCB/CSD 89/544.
    [23]
    Benjamin G. Zorn. The effect of garbage collection on cache performance. Computer Science Technical Report CU-CS- 528-91, University of Colorado, Campus Box 430, Boulder, CO 80309, May 1991.

    Cited By

    View all
    • (2022)Online Application Guidance for Heterogeneous Memory SystemsACM Transactions on Architecture and Code Optimization10.1145/353385519:3(1-27)Online publication date: 6-Jul-2022
    • (2019)Evaluating the effectiveness of program data features for guiding memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357537(383-395)Online publication date: 30-Sep-2019
    • (2018)Language-Based Expression of Reliability and Parallelism for Low-Power ComputingIEEE Transactions on Sustainable Computing10.1109/TSUSC.2017.27713763:3(153-166)Online publication date: 1-Jul-2018
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 33, Issue 11
    Nov. 1998
    309 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/291006
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS VIII: Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
      October 1998
      326 pages
      ISBN:1581131070
      DOI:10.1145/291069
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 October 1998
    Published in SIGPLAN Volume 33, Issue 11

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)92
    • Downloads (Last 6 weeks)26
    Reflects downloads up to 12 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Online Application Guidance for Heterogeneous Memory SystemsACM Transactions on Architecture and Code Optimization10.1145/353385519:3(1-27)Online publication date: 6-Jul-2022
    • (2019)Evaluating the effectiveness of program data features for guiding memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357537(383-395)Online publication date: 30-Sep-2019
    • (2018)Language-Based Expression of Reliability and Parallelism for Low-Power ComputingIEEE Transactions on Sustainable Computing10.1109/TSUSC.2017.27713763:3(153-166)Online publication date: 1-Jul-2018
    • (2018)LWPTool: A Lightweight Profiler to Guide Data Layout OptimizationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2018.284099229:11(2489-2502)Online publication date: 11-Oct-2018
    • (2016)The hardness of data packingACM SIGPLAN Notices10.1145/2914770.283766951:1(232-242)Online publication date: 11-Jan-2016
    • (2015)Memento mori: dynamic allocation-site-based optimizationsACM SIGPLAN Notices10.1145/2887746.275418150:11(105-117)Online publication date: 14-Jun-2015
    • (2015)Memento mori: dynamic allocation-site-based optimizationsProceedings of the 2015 International Symposium on Memory Management10.1145/2754169.2754181(105-117)Online publication date: 14-Jun-2015
    • (2010)A dynamic evaluation of the precision of static heap abstractionsACM SIGPLAN Notices10.1145/1932682.186949445:10(411-427)Online publication date: 17-Oct-2010
    • (2010)A dynamic evaluation of the precision of static heap abstractionsProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869494(411-427)Online publication date: 17-Oct-2010
    • (2002)Avoiding initialization misses to the heapProceedings of the 29th annual international symposium on Computer architecture10.5555/545215.545236(183-194)Online publication date: 25-May-2002
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media