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

Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java

Published: 11 June 2003 Publication History

Abstract

Now that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past approaches have generally suffered from one of two major flaws: either they were not provably real-time, or they imposed large space overheads to meet the real-time bounds.Our previous work [3] presented the Metronome, a mostly non-copying real-time collector. The Metronome achieves worst-case pause times of 6 milliseconds while maintaining consistent mutator CPU utilization rates of 50% with only 1.5-2.1 times the maximum heap space required by the application, which is comparable with space requirements for stop-the-world collectors.However, that algorithm assumed a constant collection rate, ignored program-dependent characteristics, and lacked a precise specification for when to trigger collection or how much defragmentation to perform. This paper refines the model by taking into account program properties such as pointer density, average object size, and locality of object size. This allows us to bound both the time for collection and consequently the space overhead required much more tightly. We show experimentally that most parameters usually are not subject to large variation, indicating that a small number of parameters will be sufficient to predict the time and space requirements accurately.Our previous work also did not present the details of our approach to avoiding and undoing fragmentation. In this paper we present a more detailed analysis of fragmentation than in previous work, and show how our collector is able to bound fragmentation to acceptable limits.

References

[1]
ALPERN, B., ET AL. Implementing Jalapeno in Java. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (Oct. 1999). SIGPLAN Notices, 34, 10, 314--324.]]
[2]
APPEL, A. W., ELLIS, J. R., AND LI, K. Real-time concurrent collection on stock multiprocessors. In Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation (Atlanta, Georgia, June 1988). SIGPLAN Notices, 23, 7 (July), 11--20.]]
[3]
BACON, D. F., CHENG, P., AND RAJAN, V. T. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (New Orleans, Louisiana, Jan. 2003), pp. 285--298.]]
[4]
BAKER, H. G. List processing in real-time on a serial computer. Commun. ACM 21, 4 (Apr. 1978), 280--294.]]
[5]
BAKER, H. G. The Treadmill, real-time garbage collection without motion sickness. SIGPLAN Notices 27, 3(Mar. 1992), 66--70.]]
[6]
BERGER, E. D., MCKINLEY, K. S., BLUMOFE, R. D., AND WILSON, P. R. Hoard: A scalable memory allocator for multithreaded applications. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX) (Cambridge, Massachussetts, Nov. 2000). SIGPLAN Notices, 35, 11, 117--128.]]
[7]
BOLLELLA, G., GOSLING, J., BROSGOL, B.M., DIBBLE, P., FURR, S., HARDIN, D., AND TURNBULL, M. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000.]]
[8]
BROOKS, R. A. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming (Austin, Texas, Aug. 1984), G. L. Steele, Ed., pp. 256--262.]]
[9]
CHEADLE, A. M., FIELD, A. J., MARLOW, S., PEYTON JONES, S. L., AND WHILE, R. L. Non-stop Haskell. In Proc. of the Fifth International Conference on Functional Programming (Montreal, Quebec, Sept. 2000). SIGPLAN Notices, 35, 9, 257--267.]]
[10]
CHENG, P., AND BLELLOCH, G. A parallel, real-time garbage collector. In Proc. of the SIGPLAN Conference on Programming Language Design and Implementation (Snow-bird, Utah, June 2001). SIGPLAN Notices, 36, 5 (May), 125--136.]]
[11]
DIECKMANN, S., AND HOLZLE, U. A study of the allocation behavior of the SPECjvm98 Java benchmarks. In Proc. of the Thirteenth European Conference on Object-Oriented Programming (1999), R. Guerraoui, Ed., vol. 1628 of Lecture Notes in Computer Science, Springer-Verlag, pp. 92--115.]]
[12]
DIMPSEY, R., ARORA, R., AND KUIPER, K. Javaserverper-formance: A case study of building efficient, scalable JVMs. IBM Syst. J. 39, 1 (2000), 151--174.]]
[13]
HENRIKSSON,R.Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology, July 1998.]]
[14]
JOHNSTONE, M. S. Non-Compacting Memory Allocation and Real-Time Garbage Collection. PhD thesis, University of Texas at Austin, Dec. 1997.]]
[15]
JOHNSTONE, M. S., AND WILSON, P. R. Thememoryfrag-mentation problem: Solved? In Proc. of the ACM SIG-PLAN International Symposium on Memory Management (Mar. 1999). SIGPLAN Notices, 34, 3, 26--36.]]
[16]
LAROSE, M., AND FEELEY, M. A compacting incremental collector and its performance in a production quality compiler. In Proc. of the First International Symposium on Memory Management (Vancouver, B.C., Oct. 1998). SIGPLAN Notices, 34, 3 (Mar., 1999), 1--9.]]
[17]
SIEBERT, F. Eliminating external fragmentation in a non-moving garbage collector for Java. In International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (San Jose, California, Nov. 2000), pp. 9--17.]]
[18]
YUASA, T. Real-time garbage collection on general-purpose machines. Journal of Systems and Software 11, 3 (Mar. 1990), 181--198.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 38, Issue 7
Special Issue: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool support for embedded systems (San Diego, CA).
July 2003
293 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/780731
Issue’s Table of Contents
  • cover image ACM Conferences
    LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
    June 2003
    304 pages
    ISBN:1581136471
    DOI:10.1145/780732
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: 11 June 2003
Published in SIGPLAN Volume 38, Issue 7

Check for updates

Author Tags

  1. compaction
  2. cost model
  3. fragmentation
  4. space bounds

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)The Predictable Execution Model in PracticeACM Transactions on Embedded Computing Systems10.1145/346537020:5(1-25)Online publication date: 29-Jul-2021
  • (2021)Skills Gaps in the IndustryACM Transactions on Embedded Computing Systems10.1145/346334020:5(1-39)Online publication date: 9-Jul-2021
  • (2021)IntroductionACM Transactions on Computer-Human Interaction10.1145/346183228:3(1-13)Online publication date: 3-Jul-2021
  • (2021)Integrated Hardware Garbage CollectionACM Transactions on Embedded Computing Systems10.1145/345014720:5(1-25)Online publication date: 9-Jul-2021
  • (2021)Improving Power of DSP and CNN Hardware Accelerators Using Approximate Floating-point MultipliersACM Transactions on Embedded Computing Systems10.1145/344898020:5(1-21)Online publication date: 9-Jul-2021
  • (2021)Living in a City, Living a Rural LifeACM Transactions on Computer-Human Interaction10.1145/344897928:3(1-29)Online publication date: 29-May-2021
  • (2021)Digital Technology at the Edge of CapitalismACM Transactions on Computer-Human Interaction10.1145/344807228:3(1-39)Online publication date: 29-May-2021
  • (2016)Adding real-time capabilities to a SML compilerACM SIGBED Review10.1145/2930957.293095813:2(8-13)Online publication date: 27-Apr-2016
  • (2016)An application programming interface with increased performance for optimisation problems dataJournal of Management Analytics10.1080/23270012.2016.12335143:4(305-332)Online publication date: 30-Nov-2016
  • (2015)Memento mori: dynamic allocation-site-based optimizationsACM SIGPLAN Notices10.1145/2887746.275418150:11(105-117)Online publication date: 14-Jun-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media