Discovercore.pyEpisode 18: Reference Counting
Episode 18: Reference Counting

Episode 18: Reference Counting

Update: 2025-01-24
Share

Description

After we talked about memory allocation in Python back in Episode 16, we're ready to complain, uh, explain reference counting. Or at least throw a bunch of reference counting facts at you. Plus a big assortment of recent Python changes. You ready?




## Timestamps




(00:00:00 ) INTRO


(00:04:17 ) PART 0: SPORTS NEWS


(00:06:53 ) PART 1: REFERENCE COUNTING


(00:08:28 ) New segment of 2025


(00:13:54 ) C++ is asymptotic Python


(00:15:37 ) Is Rust game yet?


(00:18:01 ) Names


(00:20:25 ) Breaking the law


(00:23:08 ) sys.getrefcount()


(00:25:21 ) Pedantic Pablo


(00:26:06 ) sys.gettotalrefcount()


(00:31:24 ) TraceRefs


(00:33:28 ) Advantages of refcounting


(00:36:16 ) Disadvantages of refcounting


(00:38:40 ) Reference cycles


(00:40:39 ) Multithreading


(00:41:25 ) When refcounting goes wrong


(00:44:05 ) Freeing memory in Python doesn't return it to the OS


(00:45:42 ) Leaks and cycles redux


(00:50:29 ) Double free


(00:53:05 ) Avoiding reference counting


(00:54:59 ) Immortal objects


(01:00:40 ) PART 2: WHAT'S GOING ON IN CPYTHON


(01:02:43 ) New features


(01:04:11 ) Assorted interesting changes


(01:15:23 ) Performance


(01:18:09 ) Free-threading changes galore


(01:27:02 ) AsyncIO


(01:34:25 ) Windows changes


(01:36:45 ) Security


(01:37:20 ) OUTRO



Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Episode 18: Reference Counting

Episode 18: Reference Counting

Pablo Galindo and Łukasz Langa