Episode 16: Memory Allocation
Description
How does Python handle memory? Why does it need to perform custom forms of memory allocation? We talk about all that in this episode. We don't talk about Easter eggs, and we never mention Brandt by name, as promised last time!
## Timestamps
(00:00:00 ) INTRO
(00:00:22 ) PART 0: SPORTS NEWS
(00:01:57 ) PART 1: MEMORY ALLOCATION
(00:03:46 ) If you write C correctly, it manages memory for you
(00:05:38 ) malloc and the heap
(00:09:31 ) High-level allocators
(00:10:48 ) pymalloc
(00:11:15 ) 512 is a good number
(00:12:43 ) Memory domains in pymalloc
(00:15:09 ) Why is pymalloc faster than just using malloc?
(00:20:16 ) To free or not to free
(00:26:35 ) User-facing features of pymalloc
(00:30:40 ) Łukasz replaced by an LLM Sim... almost
(00:32:58 ) Debugging help with marked memory
(00:39:24 ) 8-byte alignment
(00:42:27 ) cymem
(00:45:08 ) tracemalloc
(00:49:12 ) memray
(00:50:47 ) Coding like an ultravillain
(00:55:22 ) Complaining about Apple
(01:01:45 ) PART 2: PR OF THE WEEK
(01:13:46 ) Pablo's buildbot release status page
(01:18:26 ) PART 3: WHAT'S GOING ON IN CPYTHON
(01:18:52 ) PEP 762
(01:22:30 ) PEP 758
(01:26:10 ) Performance updates
(01:29:14 ) Argparse suggests correct spelling
(01:30:13 ) Fraction.from_number() and Decimal.from_number()
(01:30:39 ) switched in contextvars
(01:31:42 ) Better type annotations in pydoc signatures
(01:33:33 ) Fixes in TaskGroup and _PyFuture ref cycles
(01:34:03 ) Data race in ZoneInfo
(01:35:53 ) Testing certificates set to expire far in the future
(01:36:32 ) InternalDocs
(01:40:22 ) There are no Easter eggs
(01:40:42 ) OUTRO