devxlogo

Models of Garbage Collectors

Models of Garbage Collectors

If you need a garbage collector, you can either install one or implement it by yourself. Which type of garbage collection should you use? A conservative garbage collector and a copying garbage collector are the two most common models.

A conservative garbage collector doesn’t move objects from one place to another. It uses constant-sized memory chunks (buckets). This way, the heap doesn’t become fragmented. The conservative model is more adequate for C++ because sometimes copying objects is undesirable or even impossible, especially if they contain pointers to other objects or data. A conservative garbage collector is also easy to implement. A copying garbage collector gives you more flexibility at the cost of higher runtime overhead. Under the copying model, memory blocks may have different sizes. As a result, heap fragmentation can occur. Therefore, a copying garbage collector must perform memory compaction periodically. During memory compaction, “live” objects are copied from their existing location to a contiguous memory block and their previous storage is recycled. Compaction is very expensive. Therefore, it’s less useful in time critical systems.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist