SlideShare a Scribd company logo
1 of 61
Download to read offline
Knowing your garbage collector
Francisco Fernandez Castano
upclose.me
francisco.fernandez.castano@gmail.com @fcofdezc
April 17, 2015
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 1 / 61
Overview
1 Introduction
Motivation
Concepts
2 Algorithms
CPython RC
PyPy
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 2 / 61
Motivation
Managing memory manually is hard.
Who owns the memory?
Should I free these resources?
What happens with double frees?
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 3 / 61
Dangling pointers
int *func(void)
{
int num = 1234;
/* ... */
return #
}
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 4 / 61
Ownership
int *func(void)
{
int *num = malloc (10 * sizeof(int ));;
/* ... */
return num;
}
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 5 / 61
John Maccarthy
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 6 / 61
Basic concepts
Heap
A data structure in which objects may be allocated or deallocated in any
order.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 7 / 61
Basic concepts
Heap
A data structure in which objects may be allocated or deallocated in any
order.
Mutator
The part of a running program which executes application code.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 8 / 61
Basic concepts
Heap
A data structure in which objects may be allocated or deallocated in any
order.
Mutator
The part of a running program which executes application code.
Collector
The part of a running program responsible of garbage collection.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 9 / 61
Garbage collection
Definition
Garbage collection is automatic memory management. While the
mutator runs , it routinely allocates memory from the heap. If more
memory than available is needed, the collector reclaims unused memory
and returns it to the heap.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 10 / 61
CPython GC
CPython implementation has garbage collection.
CPython GC algorithm is Reference counting with cycle detector
It also has a generational GC.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 11 / 61
Reference Counting Algorithm
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
struct _typeobject *ob_type;
} PyObject;
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 12 / 61
Reference Counting Algorithm
my_list = []
class A(object ): pass
a = A()
my_list.append(a)
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 13 / 61
Reference Counting Algorithm
static int
ins1(PyListObject *self , Py_ssize_t where , PyObject
{
.
.
.
items = self ->ob_item;
for (i = n; --i >= where; )
items[i+1] = items[i];
Py_INCREF(v);
items[where] = v;
return 0;
}
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 14 / 61
Reference Counting Algorithm
#define Py_INCREF(op) ( 
_Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA 
(( PyObject *)(op))-> ob_refcnt ++)
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 15 / 61
Reference Counting Algorithm
my_list [0] = 1
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 16 / 61
Reference Counting Algorithm
#define Py_DECREF(op)

do {

if ( _Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA

--(( PyObject *)(op))-> ob_refcnt != 0)

_Py_CHECK_REFCNT (op)

else

_Py_Dealloc (( PyObject *)(op));

} while (0)
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 17 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 18 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 19 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 20 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 21 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 22 / 61
Reference Counting Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 23 / 61
Cycles
l = []
l.append(l)
del l
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 24 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 25 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 26 / 61
PyGC Head
typedef union _gc_head {
struct {
union _gc_head *gc_next;
union _gc_head *gc_prev;
Py_ssize_t gc_refs;
} gc;
double dummy; /* force worst -case alignment */
} PyGC_Head;
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 27 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 28 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 29 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 30 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 31 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 32 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 33 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 34 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 35 / 61
Cycles
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 36 / 61
Cycles
Wait!!
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 37 / 61
Cycles
Finalizers
Weak references
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 38 / 61
Cycles
Objects reachable from finalizers can’t safely be deleted.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 39 / 61
Cycles
So, they’re moved to uncollectable set.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 40 / 61
Cycles
So, they’re moved to uncollectable set.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 41 / 61
Cycles
Only reachable weakref callbacks are invoked.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 42 / 61
CPython Memory Allocator
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 43 / 61
CPython Memory Allocator
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 44 / 61
Demo
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 45 / 61
Reference counting
Pros: Is incremental, as it works, it frees memory.
Cons: Detecting Cycles could be hard.
Cons: Size overhead on objects.
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 46 / 61
PyPy
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 47 / 61
PyPy GC
Agnostic GC
Different implementations over time
Nowadays it uses incminmark
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 48 / 61
Young objects
[elem * 2 for elem in elements]
balance = (a / b / c) * 4
’asdadsasd -xxx’.replace(’x’, ’y’). replace(’a’, ’
foo.bar()
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 49 / 61
PyPy memory model
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 50 / 61
PyPy GC
Minor and Major collection
Objects are moved only once
Major collection is done incrementally (to avoid long stops)
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 51 / 61
PyPy memory model
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 52 / 61
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 53 / 61
Mark and Sweep Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 54 / 61
Mark and Sweep Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 55 / 61
Mark and Sweep Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 56 / 61
Mark and Sweep Algorithm
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 57 / 61
Mark and sweep
Pros: Can collect cycles.
Cons: Basic implementation stops the world
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 58 / 61
EuroPython
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 59 / 61
Questions?
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 60 / 61
The End
Francisco Fernandez Castano (@fcofdezc) Python GC April 17, 2015 61 / 61

More Related Content

What's hot

Swift勉強会第1回 〜Hello, Worldしてみよう〜
Swift勉強会第1回 〜Hello, Worldしてみよう〜Swift勉強会第1回 〜Hello, Worldしてみよう〜
Swift勉強会第1回 〜Hello, Worldしてみよう〜真次郎 新納
 
Data Science with R for Java Developers
Data Science with R for Java DevelopersData Science with R for Java Developers
Data Science with R for Java DevelopersNLJUG
 
PigSPARQL - Mapping SPARQL to Pig Latin
PigSPARQL - Mapping SPARQL to Pig LatinPigSPARQL - Mapping SPARQL to Pig Latin
PigSPARQL - Mapping SPARQL to Pig LatinAlexander Schätzle
 
개발자를 위한 넓고 얕은 지식
개발자를 위한 넓고 얕은 지식개발자를 위한 넓고 얕은 지식
개발자를 위한 넓고 얕은 지식Jung Kim
 
OKF Annotator technical overview
OKF Annotator technical overviewOKF Annotator technical overview
OKF Annotator technical overviewnickstenning
 
LLPlanets Lightning Talk Presentation No.8
LLPlanets Lightning Talk Presentation No.8LLPlanets Lightning Talk Presentation No.8
LLPlanets Lightning Talk Presentation No.8Yoji TAKEUCHI
 
Fate and functional programming
Fate and functional programmingFate and functional programming
Fate and functional programmingRino Jose
 
Globalization autdi for Fedora Atomic
Globalization autdi for Fedora AtomicGlobalization autdi for Fedora Atomic
Globalization autdi for Fedora AtomicPravin Satpute
 

What's hot (8)

Swift勉強会第1回 〜Hello, Worldしてみよう〜
Swift勉強会第1回 〜Hello, Worldしてみよう〜Swift勉強会第1回 〜Hello, Worldしてみよう〜
Swift勉強会第1回 〜Hello, Worldしてみよう〜
 
Data Science with R for Java Developers
Data Science with R for Java DevelopersData Science with R for Java Developers
Data Science with R for Java Developers
 
PigSPARQL - Mapping SPARQL to Pig Latin
PigSPARQL - Mapping SPARQL to Pig LatinPigSPARQL - Mapping SPARQL to Pig Latin
PigSPARQL - Mapping SPARQL to Pig Latin
 
개발자를 위한 넓고 얕은 지식
개발자를 위한 넓고 얕은 지식개발자를 위한 넓고 얕은 지식
개발자를 위한 넓고 얕은 지식
 
OKF Annotator technical overview
OKF Annotator technical overviewOKF Annotator technical overview
OKF Annotator technical overview
 
LLPlanets Lightning Talk Presentation No.8
LLPlanets Lightning Talk Presentation No.8LLPlanets Lightning Talk Presentation No.8
LLPlanets Lightning Talk Presentation No.8
 
Fate and functional programming
Fate and functional programmingFate and functional programming
Fate and functional programming
 
Globalization autdi for Fedora Atomic
Globalization autdi for Fedora AtomicGlobalization autdi for Fedora Atomic
Globalization autdi for Fedora Atomic
 

More from fcofdezc

STM on PyPy
STM on PyPySTM on PyPy
STM on PyPyfcofdezc
 
Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014fcofdezc
 
Knowing your Python Garbage Collector
Knowing your Python Garbage CollectorKnowing your Python Garbage Collector
Knowing your Python Garbage Collectorfcofdezc
 
Graph databases - EuroPython 2014
Graph databases - EuroPython 2014Graph databases - EuroPython 2014
Graph databases - EuroPython 2014fcofdezc
 
Extending Python - EuroPython 2014
Extending Python - EuroPython 2014Extending Python - EuroPython 2014
Extending Python - EuroPython 2014fcofdezc
 
Biicode OpenExpoDay
Biicode OpenExpoDayBiicode OpenExpoDay
Biicode OpenExpoDayfcofdezc
 
Graph Databases, a little connected tour (Codemotion Rome)
Graph Databases, a little connected tour (Codemotion Rome)Graph Databases, a little connected tour (Codemotion Rome)
Graph Databases, a little connected tour (Codemotion Rome)fcofdezc
 
biicode, reuse and play
biicode, reuse and playbiicode, reuse and play
biicode, reuse and playfcofdezc
 
Graph databases, a little connected tour
Graph databases, a little connected tourGraph databases, a little connected tour
Graph databases, a little connected tourfcofdezc
 

More from fcofdezc (9)

STM on PyPy
STM on PyPySTM on PyPy
STM on PyPy
 
Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014
 
Knowing your Python Garbage Collector
Knowing your Python Garbage CollectorKnowing your Python Garbage Collector
Knowing your Python Garbage Collector
 
Graph databases - EuroPython 2014
Graph databases - EuroPython 2014Graph databases - EuroPython 2014
Graph databases - EuroPython 2014
 
Extending Python - EuroPython 2014
Extending Python - EuroPython 2014Extending Python - EuroPython 2014
Extending Python - EuroPython 2014
 
Biicode OpenExpoDay
Biicode OpenExpoDayBiicode OpenExpoDay
Biicode OpenExpoDay
 
Graph Databases, a little connected tour (Codemotion Rome)
Graph Databases, a little connected tour (Codemotion Rome)Graph Databases, a little connected tour (Codemotion Rome)
Graph Databases, a little connected tour (Codemotion Rome)
 
biicode, reuse and play
biicode, reuse and playbiicode, reuse and play
biicode, reuse and play
 
Graph databases, a little connected tour
Graph databases, a little connected tourGraph databases, a little connected tour
Graph databases, a little connected tour
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Understanding Python garbage collection