Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Continuous object access profiling and optimizations to overcome the memory wall and bloat

Published: 03 March 2012 Publication History

Abstract

Future microprocessors will have more serious memory wall problems since they will include more cores and threads in each chip. Similarly, future applications will have more serious memory bloat problems since they are more often written using object-oriented languages and reusable frameworks. To overcome such problems, the language runtime environments must accurately and efficiently profile how programs access objects. We propose Barrier Profiler, a low-overhead object access profiler using a memory-protection-based approach called pointer barrierization and adaptive overhead reduction techniques. Unlike previous memory-protection-based techniques, pointer barrierization offers per-object protection by converting all of the pointers to a given object to corresponding barrier pointers that point to protected pages. Barrier Profiler achieves low overhead by not causing signals at object accesses that are unrelated to the needed profiles, based on profile feedback and a compiler analysis. Our experimental results showed Barrier Profiler provided sufficiently accurate profiles with 1.3% on average and at most 3.4% performance overhead for allocation-intensive benchmarks, while previous code-instrumentation-based techniques suffered from 9.2% on average and at most 12.6% overhead. The low overhead allows Barrier Profiler to be run continuously on production systems. Using Barrier Profiler, we implemented two new online optimizations to compress write-only character arrays and to adjust the initial sizes of mostly non-accessed arrays. They resulted in speed-ups of up to 8.6% and 36%, respectively.

References

[1]
Arnold, M. and Ryder, B. G. A framework for reducing the cost of instrumented code. In PLDI, pp. 168--179, 2001.
[2]
Arnold, M., Vechev, M., and Yahav, E. QVM: An efficient runtime for detecting defects in deployed systems. In OOPSLA, pp. 143--162, 2008.
[3]
Blackburn, S. M. and Hosking, A. L. Barriers: friend or foe? In ISMM, pp. 143--151, 2004.
[4]
Bond, M. D. and McKinley, K. S. Leak pruning. In ASPLOS, pp. 277--288, 2009.
[5]
Chen, G., Kandemir, M., Vijaykrishnan, N., Irwin, M. J., Mathiske, B., and Wolczko, M. Heap compression for memory-constrained Java environments. In OOPSLA, pp. 282--301, 2003.
[6]
Chilimbi, T. M., Davidson, B., and Larus, J. R. Cache-conscious structure definition. In PLDI, pp. 13--24, 1999.
[7]
Grcevski, N., Kilstra, A., Stoodley, K., Stoodley, M., and Sundaresan, V. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of the 3rd Virtual Machine Research and Technology Symposium, pp. 151--162, 2004.
[8]
Hirzel, M. and Chilimbi, T. M. Bursty tracing: a framework for low-overhead temporal profiling. In Proceedings of the 4th Workshop on Feedback-Directed and Dynamic Optimization, pp. 117--126, 2001.
[9]
Java SE 6 API Specification. http://java.sun.com/ javase/6/docs/api/ .
[10]
Le, H. Q., Starke, W. J., Fields, J. S., O'Connell, F. P., Nguyen, D. Q., Ronchetti, B. J., Sauer, W. M., Schwarz, E. M., and Vaden, M. T. IBM POWER6 microarchitecture, IBM Journal of Research and Development, Vol. 51 (6), pp. 639--662, 2007.
[11]
Li, J, Wu, C., and Hsu W. Dynamic register promotion of stack variables. In CGO, pp. 21--31, 2011.
[12]
Marinov, D. and O'Callahan, R. Object equality profiling. In OOPSLA, pp. 313--325, 2003.
[13]
Microsoft. Process Address Space. http://technet.microsoft.com/en-us/library/ms189334.aspx .
[14]
Mitchell, N. and Sevitsky, G. The causes of bloat, the limits of health. In OOPSLA, pp. 245--260, 2007.
[15]
Novark, G. Hardening software against memory errors and attacks. Dissertation. University of Massachusetts - Amherst, 2011.
[16]
Novark, G., Berger, E. D., and Zorn, B. G. Efficiently and precisely locating memory leaks and bloat. In PLDI, pp. 397--407, 2009.
[17]
Oracle. HotSpot VM. http://www.oracle.com/technetwork/ java/javase/overview/index.html .
[18]
Power.org. http://www.power.org/ .
[19]
Rehr, M. and Vinter, B. The user-level remote swap library. In Proceedings of the 2010 IEEE 12th International Conference on High Performance Computing and Communications, pp. 164--171, 2010.
[20]
Sartor, J. B., Blackburn, S. M., Frampton, D., Hirzel, M., and McKinley, K. S. Z-rays: divide arrays and conquer speed and flexibility. In PLDI, pp. 471--482, 2010.
[21]
Sartor, J. B., Hirzel, M., and McKinley, K. S. No bit left behind: the limits of heap data compression. In ISMM, pp. 111--120, 2008.
[22]
Sartor, J. B., Venkiteswaran, S., McKinley, K. S. and Wang, Z. Cooperative caching with Keep-Me and Evict-Me. In Proceedings of the 9th Annual Workshop on Interaction between Compilers and Computer Architectures, pp. 45--57, 2005.
[23]
Shacham, O., Vechev, M., and Yahav, E. Chameleon: adaptive selection of collections. In PLDI, pp. 408--418, 2009.
[24]
Shaham, R., Kolodner, E. K., and Sagiv, M. Heap profiling for space-efficient Java. In PLDI, pp. 104--113, 2001.
[25]
Skape. Memalyze: Dynamic analysis of memory access behavior in software. Uninformed Journal, Vol. 7, http://uninformed.org/?v=7, 2007.
[26]
Unkel, C. and Lam, M. S. Automatic inference of stationary fields: a generalization of java's final fields. In POPL, pp. 183--195, 2008.
[27]
Wilson P. R. Pointer swizzling at page fault time: efficiently supporting huge address spaces on standard hardware. University of Illinois at Chicago Technical Report UIC-EECS-90--6, 1990.
[28]
Xu, G. and Rountev, A. Detecting inefficiently-used containers to avoid bloat. In PLDI, pp. 160--173, 2010.
[29]
Xu, G., Arnold, M., Mitchell, N., Rountev, A., and Sevitsky, G. Go with the flow: profiling copies to find runtime bloat. In PLDI, pp. 419--430, 2009.
[30]
Zhao, Q., Rabbah, R. M., Amarasinghe, S. P., Rudolph, L., and Wong, W. How to do a million watchpoints: efficient debugging using dynamic instrumentation. In Proceedings of the 17th International Conference on Compiler Construction, pp. 147--162, 2008.
[31]
Zhao, Y., Shi, J., Zheng, K., Wang, H., Lin, H., and Shao, L. Allocation wall: a limiting factor of Java applications on emerging multi-core platforms. In OOPSLA, pp. 361--376, 2009.
[32]
Zilles, C. Accordion arrays: selective compression of Unicode arrays in Java. In ISMM, pp. 55--66, 2007.

Cited By

View all
  • (2018)A low-overhead and efficient Java object profiler on ART virtual machineJournal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology10.3233/JIFS-16965535:3(2997-3009)Online publication date: 1-Jan-2018
  • (2016)JVM characterization framework for workload generated as per machine learning benckmark and spark framework2016 IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT)10.1109/RTEICT.2016.7808102(1598-1602)Online publication date: May-2016
  • (2016)Efficient flow profiling for detecting performance bugsProceedings of the 25th International Symposium on Software Testing and Analysis10.1145/2931037.2931066(413-424)Online publication date: 18-Jul-2016
  • Show More Cited By

Index Terms

  1. Continuous object access profiling and optimizations to overcome the memory wall and bloat

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 40, Issue 1
    ASPLOS '12
    March 2012
    453 pages
    ISSN:0163-5964
    DOI:10.1145/2189750
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS XVII: Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
      March 2012
      476 pages
      ISBN:9781450307598
      DOI:10.1145/2150976
    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: 03 March 2012
    Published in SIGARCH Volume 40, Issue 1

    Check for updates

    Author Tags

    1. memory management
    2. memory protection
    3. profiling

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 23 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)A low-overhead and efficient Java object profiler on ART virtual machineJournal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology10.3233/JIFS-16965535:3(2997-3009)Online publication date: 1-Jan-2018
    • (2016)JVM characterization framework for workload generated as per machine learning benckmark and spark framework2016 IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT)10.1109/RTEICT.2016.7808102(1598-1602)Online publication date: May-2016
    • (2016)Efficient flow profiling for detecting performance bugsProceedings of the 25th International Symposium on Software Testing and Analysis10.1145/2931037.2931066(413-424)Online publication date: 18-Jul-2016
    • (2015)LeakTracer: Tracing leaks along the way2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2015.7335414(181-190)Online publication date: Sep-2015
    • (2014)Address Chain: Profiling Java Objects without Overhead in Java HeapsProgramming Languages and Systems10.1007/978-3-319-12736-1_22(408-427)Online publication date: 2014

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media