Skip to main content
CourseFlix

Garbage Collection Algorithms

2h 13m 20s
English
Paid

Master the complexities of memory management and ensure your programs run efficiently by understanding the intricacies of Garbage Collection Algorithms. This course is designed to equip you with the knowledge to tackle memory leaks and dangling pointers, which are prevalent issues in manual memory management.

Course Overview

Automatic memory management is a key feature in most modern high-level programming languages. Unlike manual memory allocation and deallocation, the garbage collector manages memory automatically, ensuring efficient usage and reuse. This course, Essentials of Garbage Collectors, delves into various techniques and algorithms in practice today.

Target Audience

Compiler Engineers

This course is particularly beneficial for compiler engineers. If you're designing a language, you'll likely need to implement a garbage collector. Even languages like Rust, known for memory safety, adopted automatic reference counting (ARC) and other collectors.

Other Engineers

If you aren't a compiler engineer, this class still holds value. Building a garbage collector is an advanced engineering task that enhances your understanding of complex systems, providing transferable skills and a deeper knowledge of data structures and algorithms.

Language Requirements

You don’t need to rely exclusively on C or C++ for this project. Although they are excellent for raw memory manipulations, this course focuses on theoretical aspects and generic design algorithms. Implement these concepts in any language, such as JavaScript, Python, or Rust.

Most algorithms are presented in generic pseudo-code to facilitate porting to any programming language.

Course Structure

  • Concise Lectures: Each lecture is focused and to-the-point, concentrating solely on relevant content.
  • Animated Presentations: Dynamic visuals and live-editing notes help simplify complex topics, avoiding the limitations of static slides.

Recommended Reading

Augment your learning with these recommended books:

  • 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

Course Requirements

Requirements:
  • Understanding of basic data structures and algorithms (trees, graphs, linked lists, etc.)
  • Basic knowledge of computer memory (bytes, addresses, pointers)

Intended Learners

Who this course is for:
  • Compiler engineers
  • Engineers eager to learn about sophisticated memory management algorithms and apply their generic knowledge to other systems

Learning Outcomes

What you'll learn:

  • Foundations of Automatic Memory Management algorithms and data structures
  • History and types of memory management: Static, Stack, Heap allocations
  • Virtual memory concepts and Memory Layout
  • Differences between Tracing and Direct collectors
  • Understanding Semantic and Syntactic garbage
  • Implementing various collectors: Mark-Sweep, Mark-Compact, Reference counting, Copying, Generational
  • Exploring Parallel, Incremental, and Concurrent collectors
  • Tri-color abstraction and its role in marking
  • GC Barriers and their application

About the Authors

Dmitry Soshnikov

Dmitry Soshnikov thumbnail

Dmitry Soshnikov is a Russian software engineer and educator focused on programming-language internals, compiler construction, JavaScript engine architecture, and the theoretical computer-science foundations underneath modern software development. His independent course catalog is one of the deepest sources of long-form material on language implementation available outside university CS programs.

His CourseFlix listing carries nine courses spanning parser combinators, interpreter construction, garbage-collection algorithm internals, the design of pattern-matching engines, and JavaScript object-model deep dives. Material is paid and aimed at engineers who want to understand how the languages they use every day actually work under the hood.

Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 17 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 17 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Allocation types
All Course Lessons (17)
#Lesson TitleDurationAccess
1
Allocation types Demo
05:07
2
Manual memory management
03:56
3
Object header
03:20
4
Virtual memory and Memory layout
08:58
5
Mutator, Allocator, Collector
04:36
6
Allocators: Free-list vs. Sequential
08:57
7
Semantic vs. Syntactic garbage
04:43
8
Tracing vs. Direct collectors
06:10
9
Mark-Sweep collector
07:43
10
Mark-Compact collector
10:17
11
Copying collector
11:02
12
Reference counting collector
09:47
13
Generational collector
08:38
14
Mark-Region GC: Immix collector
12:59
15
Parallel, Incremental, Concurrent GC
07:22
16
Tri-color abstraction
07:32
17
GC barriers
12:13
Unlock unlimited learning

Get instant access to all 16 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

  • Fabulous Adventures in Data Structures and Algorithms thumbnail

    Fabulous Adventures in Data Structures and Algorithms

    Sources: Eric Lippert
    Discover unusual algorithms and data structures. Get inspired by practical examples in C#. Author: Eric Lippert.
  • Algorithms and Data Structures thumbnail

    Algorithms and Data Structures

    Sources: Oz Nova (CS Primer)
    The study of algorithms and data structures can be an especially useful field because it touches on the very essence of programming: solving complex problems.
    26 hours 32 minutes 19 seconds
  • AlgoExpert | Become an Algorithms Expert thumbnail

    AlgoExpert | Become an Algorithms Expert

    Sources: AlgoExpert
    Become an Expert in Algorithms. 65 videos explaining popular interview questions with solutions in JavaScript, Python, C ++, Java, and Go. Practice with popular questions. Topics…
    116 hours 40 minutes 8 seconds 5 / 5