Garbage collection is a way of automatic memory management provided by modern programming languages like Java, Go, Python and JavaScript.
We talk about how garbage is identified, the tricolor algorithm, the generational hypothesis and it's effect on latency and throughput.
Scenarios where the generational hypothesis doesn't work are also discussed. This includes caching and nepotism in queues (old generation objects promote young ones without due cause).
0:00 - Agenda
0:38 - Garbage Identification
0:50 - The Tricolor Algorithm
2:53 - Making the GC run faster
3:12 - Concurrent Collectors
3:49 - Generational Hypothesis
4:50 - Memory diagram
7:43 - Code injection JIT
9:09 - General hypothesis exceptions
9:43 - Nepotism
Part II:
https://youtu.be/trkYGEGT6_w
References:
Tricolor Algorithm: Knuth, The art of computer programming
Generational Hypothesis: https://people.cs.umass.edu/~emery/classes/cmpsci691s-fall2004/papers/p157-ungar.pdf
System Design Video Course: https://interviewready.io/
Software Engineering Fundamentals: https://www.youtube.com/playlist?list=PLMCXHnjXnTntYbKsUs6Pj8_BO_8ou4y07
You can follow me on:
Instagram: https://www.instagram.com/applepie404/
LinkedIn: https://www.linkedin.com/in/gaurav-sen-56b6a941/
Quora: https://www.quora.com/profile/Gaurav-Sen-6
Twitter: https://twitter.com/gkcs_
#GarbageCollection #JavaGC #JavaGarbageCollection