[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

Application-specific garbage collection

Published: 01 July 2007 Publication History

Abstract

Prior work, including our own, shows that application performance in garbage collected languages is highly dependent upon the application behavior and on underlying resource availability. We show that given a wide range of diverse garbage collection (GC) algorithms, no single system performs best across programs and heap sizes. We present a Java Virtual Machine extension for dynamic and automatic switching between diverse, widely used GCs for application-specific garbage collection selection. We describe annotation-guided, and automatic GC switching. We also describe a novel extension to extant on-stack replacement (OSR) mechanisms for aggressive GC specialization that is readily amenable to compiler optimization.

References

[1]
Aiken, A., Gay, D., 1998. Memory management with explicit regions. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 313-323.
[2]
The Jalapeño virtual machine. IBM Systems Journal. v39 i1. 211-221.
[3]
Simple generational garbage collection and fast allocation. Software Practice and Experience. v19 i2. 171-183.
[4]
A comparative evaluation of parallel garbage collectors. Lecture Notes in Computer Science, 2001.Springer-Verlag.
[5]
Bacon, D., Attanasio, C.H., Rajan, V., Smith, S., 2001. Java without the coffee breaks: a non-intrusive multiprocessor garbage collector. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 92-103.
[6]
Bacon, D., Fink, S., Grove, D., 2002. Space- and time-efficient implementation of the Java object model. In: European Conference on Object-Oriented Programming (ECOOP), pp. 111-132.
[7]
BEA Systems Inc., 2002. BEA's Enterprise Platform. IDC white paper by M. Rosen sponsered by BEA. <www.bea.com/content/news_events/white_papers/BEA_Beyond_Application_Server_wp.pdf>.
[8]
BEA Systems Inc., 2003. BEA Weblogic JRockit: Java For the Enterprise. <www.bea.com/content/news_events/white_papers/BEA_JRockit_wp.pdf>.
[9]
Blackburn, S., Singhai, S., Hertz, M., McKinley, K., Moss, J., 2001. Pretenuring for Java. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 342-352.
[10]
Blackburn, S.M., Jones, R., McKinley, K.S., and Moss, J.E.B., 2002. Getting around garbage collection gridlock. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 153-164.
[11]
Blackburn, S., Cheng, P., McKinley, K., 2003. A garbage collection design and bakeoff in JMTk: an efficient extensible java memory management toolkit. Tech. Rep. TR-CS-03-02, Department of Computer Science, FEIT, ANU, February <eprints.anu.edu.au/archive/00001986/>.
[12]
Brecht, T., Arjomandi, E., Li, C., Pham, H., 2001. Controlling garbage collection and heap growth to reduce execution time of java applications. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 353-366.
[13]
Cahoon, B., McKinley, K., 2001. Data flow analysis for software prefetching linked data structures in Java controller. In: International Conference on Parallel Architectures and Compilation Techniques, pp. 280-291.
[14]
Making pure object-oriented languages practical. ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1991.ACM Press.
[15]
Cierniak, M., Lueh, G., Stichnoth, J., 2000. Practicing JUDO: Java under dynamic optimizations. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 13-26.
[16]
Clinger, W., Hansen, L.T., 1997. Generational garbage collection and the radioactive decay model. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 97-108.
[17]
Diwan, A., Moss, J., Hudson, R., 1992. Compiler support for garbage collection in a statically typed language. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).
[18]
Fink, S., Qian, F., 2003. Design, implementation and evaluation of adaptive recompilation with on-stack replacement. In: International Symposium on Code Generation and Optimization (CGO), pp. 241-252.
[19]
Fitzgerald, R., Tarditi, D., 2000. The case for profile-directed selection of garbage collectors. In: ACM SIGPLAN International Symposium on Memory Management (ISMM), pp. 111-120.
[20]
HALLoGRAM JRun, 2001. JRun Execution Environment. Project home page. <www.hallogram.com/jrun>.
[21]
Hertz, M., Feng, Y., Berger, E.D., 2005. Garbage collection without paging. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).
[22]
Hewlett-Packard NonStop, 2003. NonStop Server for Java Software from Hewlett-Packard Corporation. Project home page. <h20223.www2.hp.com/NonStopComputing/cache/76698-0-0-0-121.html>.
[23]
Hicks, M., Hornof, L., Moore, J., Nettles, S., 1998. A study of large object spaces. In: ACM SIGPLAN International Symposium on Memory Management (ISMM), pp. 138-145.
[24]
Hirzel, M., Diwan, A., Hertz, M., 2003. Connectivity-based garbage collection. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 359-373.
[25]
Hölzle, U., 1994. Optimizing dynamically dispatched calls with run-time type feedback. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 326-336.
[26]
Hölzle, U., Ungar, D., 1994. A third generation self implementation: reconciling responsiveness with performance. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 229-243.
[27]
Hölzle, U., Chambers, C., Ungar, D., 1992. Debugging optimized code with dynamic deoptimization. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 32-43.
[28]
IBM Shiraz, 2001. IBM's Persistent Reusable JVM. Project home page. <www.haifa.il.ibm.com/projects/systems/rs/persistent.html>.
[29]
IBM WebSphere, 2004. The WebSphere Software Platform. Product home page. <www-3.ibm.com/software/info1/websphere/index.jsp>.
[30]
Java Grande Forum, 1998. The Java Grande Forum. <www.javagrande.org>.
[31]
Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley.
[32]
Krintz, C., 2003. Coupling On-Line and Off-Line Profile Information to Improve Program Performance. In International Symposium on Code Generation and Optimization (CGO). 69-78.
[33]
Krintz, C., Calder, B., 2001. Using annotation to reduce dynamic optimization time. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 156-167.
[34]
Lang, B., Dupont, F., 1987. Incrementally compacting garbage collection. In: Symposium on Interpreters and Interpretive Techniques, pp. 253-263.
[35]
The Java Virtual Machine Specification. second ed. Addison Wesley.
[36]
Paleczny, M., Vick, C., Click, C., 2001. The Java HotSpot(TM) server compiler. In: USENIX Java Virtual Machine Research and Technology Symposium (JVM'01), pp. 1-12.
[37]
Printezis, T., 2001. Hot-swapping between a Mark&Sweep and a Mark&Compact garbage collector in a generational environment. In: Usenix Java Virtual Machine Research and Technology Symposium, pp. 171-184.
[38]
Sachindran, N., Moss, J.E.B., 2003. Mark-copy: fast copying GC with less space overhead. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 326-343.
[39]
Sachindran, N., Moss, J.E.B., Berger, E.D., 2004. MC2: high-performance garbage collection for memory-constrained environments. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).
[40]
Sansom, P., 1992. Combining single-space and two-space compacting garbage collectors. In: Glasgow Workshop on Functional Programming, pp. 312-323.
[41]
Smith, F., Morrisett, G., 1998. Comparing mostly-copying and mark-sweep conservative collection. In: ACM SIGPLAN International Symposium on Memory Management (ISMM), pp. 68-78.
[42]
Soman, S., Krintz, C., Bacon, D.F., 2004. Dynamic selection of application-specific garbage collectors. In: ACM SIGPLAN International Symposium on Memory Management (ISMM), pp. 49-60.
[43]
SPEC Corporation 1998. Standard Performance Evaluation Corporation (SpecJVM98 and SpecJBB Benchmarks). <www.spec.org>.
[44]
Suganuma, T., Yasue, T., Nakatani, T., 2003. A region-based compilation technique for a java just-in-time compiler. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 312-323.
[45]
Sun Microsystems, Inc. 2001. The Java HotSpot Virtual Machine, Technical White Paper. <java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_4_30_01.ps>.
[46]
Ungar, D., 1992. Generation scavenging: a non-disruptive high performance storage recalamation algorithm. In: Software Engineering Symposium on Practical Software Development Environments, pp. 157-167.
[47]
An adaptive tenuring policy for generation scavengers. ACM Transactions on Programming Languages and Systems. v14 i1. 1-27.
[48]
Ungar, D., Smith, R., 1987. Self: the power of simplicity. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 227-242.
[49]
Yang, T., Hertz, M., Berger, E.D., Kaplan, S.F., Moss, J.E.B., 2004. Automatic heap sizing: taking real memory into account. In: ACM SIGPLAN International Symposium on Memory Management (ISMM).
[50]
Zhang, C., Kelsey, K., Shen, X., Ding, C., Hertz, M., Ogihara, M., 2006. Program-level adaptive memory management. In: ACM SIGPLAN International Symposium on Memory Management (ISMM).
[51]
Zorn, B., 1990. Comparing mark-and-sweep and stop-and-copy garbage collection. In: ACM Conference on LISP and Functional Programming, pp. 87-98.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 80, Issue 7
July, 2007
249 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 July 2007

Author Tags

  1. Adaptive garbage collection
  2. Application-specific garbage collection
  3. Dynamic GC selection
  4. Java
  5. Virtual machine

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2017)SmartGC: Online Memory Management Prediction for PaaS Cloud ModelsOn the Move to Meaningful Internet Systems. OTM 2017 Conferences10.1007/978-3-319-69462-7_25(370-388)Online publication date: 23-Oct-2017
  • (2012)VM Economics for Java Cloud ComputingProceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012)10.1109/CCGrid.2012.121(723-728)Online publication date: 13-May-2012
  • (2009)ChameleonACM SIGPLAN Notices10.1145/1543135.154252244:6(408-418)Online publication date: 15-Jun-2009
  • (2009)ChameleonProceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1542476.1542522(408-418)Online publication date: 15-Jun-2009

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media