Save for later

Garbage Collection Algorithms

Essentials of Garbage Collectors

Memory leaks and dangling pointers are the main issues of the manual memory management. You delete a parent node in a linked list, forgetting to delete all its children first — and your memory is leaking. You delete an object chain in correct order — but suddenly your program crashes since you forgot about second owner of this resource, which now tries to dereference a null-pointer.

To avoid these issues, most of the modern high-level programming languages implement automatic memory management. You allocate objects manually, however don’t bother with their deallocation: a special program, garbage collector, knows how to automatically deallocate them correctly, and reclaim for future reuse.

In the Essentials of Garbage Collectors class we study all different techniques and algorithms related to the automatic memory management, which are used today on practice.

Who this class is for?

First of all, for compiler engineers.

In implementing your programming language, there is a very high chance you’ll need to implement a garbage collector. Even languages which initially were positioned as “memory-safe”, such as Rust, eventual implemented automatic reference counting (ARC) and other collectors.

To reiterate: in most of the modern high-level programming languages, a garbage collector module (or multiple GC modules, like in Java) is pretty much a requirement today.

What if I don't implement programming languages every day?

If you are not a compiler engineer, then the class can still be interesting for you. Implementing a garbage collector or a memory manager in general, is a pretty advanced engineering task. It's a simple trick: you take some complex project (such as a garbage collector, compiler, interpreter, etc), and while building it, you learn all different data structures and algorithms. And then come back to "every-day programming", improved as a better engineer, with the transferable generic knowledge of complex systems.

Do I need C or C++ for this project?

Not really. Of course, C and C++ are probably the best languages for raw memory manipulations and fit well here, however in the course we study generic design algorithms and focus mainly on theoretical aspects of garbage collectors and memory allocators. This means you can implement them in any language you want. For example, you can allocate an `ArrayBuffer` in JavaScript for a virtual heap, or similarly `bytearray` in Python, Rust, etc.

Most of the algorithms in the course are described in generic pseudo-code, so you can port them to any language.

What's specific in this class?

The main things of these lectures are:

  • Concise and straight to the point. Each lecture is self-sufficient, concise, and describes information directly related to the topic, not distracting on unrelated materials or talks.

  • Animated presentation combined with live-editing notes. This makes understanding of the topics easier, and shows how (and when at time) the object structures are connected. Static slides simply don’t work for a complex content.

Reading materials

As further reading and additional literature for this course the following books are recommended:

  • The Garbage Collection Handbook: The Art of Automatic Memory Management by Antony Hosking, Eliot Moss, and Richard Jones

  • The Compiler Design Handbook: Optimizations and Machine Code generation by Y.N. Srikant, Priti Shankar

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.0 based on 4 ratings
Length 2 total hours
Starts On Demand (Start anytime)
Cost $0
From Udemy
Instructor Dmitry Soshnikov
Download Videos Only via the Udemy mobile app
Language English
Subjects IT & Networking
Tags Development IT & Software Other Other IT & Software

Get a Reminder

Send to:

Similar Courses

What people are saying

clear presentation with animations

Very nice and clear presentation with animations that illustrate what is being said.

content - very methodical

great content - very methodical yet to the point Gc pause is the problem yet to be solved even in modern programming languages as java or c#?

deep into advanced concepts

Contains only a brief summary of the main algorithms and doesn't go deep into advanced concepts.

modern programming languages as

no real implementation code

A part from some pseudo-code examples there is no real implementation code

animations that illustrate

contains only

gc pause

immix gc

Immix GC is not even cited.

as java

being said

brief summary

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Collector Trainee $21k

Mortgage Servicing Collector $24k

Assistant Collector 1 $25k

Underpymt Appeals Collector $28k

Collector/Recovery Specialist $29k

Credit Card/debt collector $34k

Consumer Collector $36k

collector/ accounts receivable specialist at aramark uniform services/ jacksonville florida $39k

Team Collector Lead 2 $42k

Recoveries Collector $43k

Customer Rep/Collector 2 $49k

High risk automobile collector $50k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.0 based on 4 ratings
Length 2 total hours
Starts On Demand (Start anytime)
Cost $0
From Udemy
Instructor Dmitry Soshnikov
Download Videos Only via the Udemy mobile app
Language English
Subjects IT & Networking
Tags Development IT & Software Other Other IT & Software

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now