Garbage-first collector
Garbage-First (G1) is a garbage collection algorithm introduced in the Oracle HotSpot Java virtual machine (JVM) 6 Update 14 and supported from 7 Update 4. It was planned to replace concurrent mark sweep collector (CMS) in JVM 7 and was made default in Java 9.[1]
Garbage collector
Garbage-First (G1) collector is a server-style garbage collector, targeted for multiprocessors with large memories, that meets a soft real-time goal with high probability, while achieving high-throughput.[2] G1 preferentially collects regions with the least amount of live data, or "garbage first".[3] G1 is the long term replacement of CMS. Whole-heap operations, such as global marking, are performed concurrently with the application threads, to prevent interruptions proportional to heap or live-data size. Concurrent marking provides both collection completeness and identifies regions ripe for reclamation via compacting evacuation. This evacuation is performed in parallel on multiprocessors, to decrease pause times and increase throughput.
G1 was first introduced as an experimental option in Java SE 6 Update 14,[4] where it can be enabled with the following two command-line parameters: -XX:+UnlockExperimentalVMOptions and -XX:+UseG1GC With JDK 7, G1 was planned to replace CMS in the Hotspot JVM. There are two major differences between CMS and G1. The first is that G1 is a compacting collector.[5] G1 compacts sufficiently to completely avoid the use of fine-grain free lists for allocation, which considerably simplifies parts of the collector and mostly eliminates potential fragmentation issues. As well as compacting, G1 offers more predictable garbage collection pauses than the CMS collector and allows users to set their desired pause targets.
In Java 9 G1 was made the default garbage collector,[6][1] in spite of Google counter proposing the well-known CMS as the standard, claiming the modified CMS it uses performs better than G1.[7] Since then, Oracle has greatly improved G1's throughput, latency and memory footprint.[8]
Related products
Guaranteed real-time behavior even with garbage collection requires a real-time garbage collector such as those that come with Sun's Java RTS[9] or IBM’s WebSphere RT.[10]
See also
References
- ^ a b "JEP 248: Make G1 the Default Garbage Collector". openjdk.java.net. Retrieved 2019-12-09.
- ^ Detlefs, David; Flood, Christine; Heller, Steve; Printezis, Tony (2004). "Garbage-first garbage collection". Proceedings of the 4th international symposium on Memory management. pp. 37–48. CiteSeerX 10.1.1.63.6386. doi:10.1145/1029873.1029879. ISBN 1581139454. S2CID 3330886.
- ^ "Part 1: Introduction to the G1 Garbage Collector". www.redhat.com.
- ^ "G1: Java's Garbage First Garbage Collector". Dr Dobbs.
- ^ "The Garbage First Collector". www.fasterj.com.
- ^ "Why G1 is default garbage collector for Java 9?".
- ^ "Java 9's new garbage collector: What's changing? What's staying? - JAXenter". jaxenter.com. 26 June 2015.
- ^ Johansson, Stefan (11 October 2021). "G1: To Infinity and Beyond". inside.java.
- ^ http://www.oracle.com/technetwork/articles/javase/index-138577.html An Introduction to Real-Time Java Technology: Part 2, Garbage Collection and the Sun Java Real-Time System (Java RTS)
- ^ http://www.ibm.com/developerworks/java/library/j-rtj4/index.html?S_TACT=105AGX02&S_CMP=EDU Real time Garbage Collection
External links
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.