Python Memory Management and Tips Transcripts
Chapter: Python variables and memory
Lecture: CPython long source
0:00 Alright, we've taken the red pill, let's go explore. Over here, I'd like to enter that link bit.ly/cPythonlong
0:08 and it'll redirect us over to this horrible url, which you can see now why I was using Bitly to shorten it. This is, in the Python organization,
0:16 the CPython project in the longobject.c file, and this is the PyObject
0:24 PyLong_FromLong, and you can just go through and you can see all the stuff that's
0:28 happening that's going on here. So there's all the stuff I deleted we're still in the same function and still in the same function.
0:36 When are we done? Goes for aways. There's quite a bit going on here. Let's go to the top. You can see that this is the long,
0:45 arbitrary precision integer object implementation. And in this objects section, you'll see all different sorts of things,
0:54 like Booleans, and then you've got dictionaries, here's part of the dictionary implementation. There's the allocation stuff. obmalloc.
1:05 Here's the base PyObject. Um, yup, PyObject pointers all over the place,
1:11 Right? This thing. So this is the implementation for that and one thing that's interesting
1:16 is, you would think just the base class would be pretty simple, but it's 2000 lines long, like the header file. The header file, if you go up,
1:24 is already, I think, like 600 lines long. So there's a lot of stuff going on with every one of these objects,
1:31 and throughout various places in the course, I'll be giving you the short your url's, which will take you to different locations in the source code.
1:38 You don't have to go look at it, especially if all the code here makes your eyes water. That's fine. You don't have to look at it.
1:44 But this is where you can go and see exactly what is happening and when or
1:49 what kind of data is being stored and what structure and how the runtime is using that to manage the memory or allocate things and so on.