Python Memory Management and Tips Transcripts
Chapter: Efficient data structures
Lecture: Monitoring memory usages for current process
0:00 Now you've already seen us use psutil, but I want to call on a specific capability that you can use while your program is running.
0:08 So we use psutil in our size utility to get the object graph closure size of the whole object, not just the base object.
0:17 And that's what we were just working with. But psutil does all kinds of cool stuff and one of the things you might
0:23 want to use it for is just asking "how much memory is my current process using right now?" If it gets over some level,
0:31 you could take some action, right? If it gets too high, let's clear out the caches and throw that away.
0:36 But instead of letting it crash or start to swap and become extremely slow,
0:40 let's just say "clear the data that can be cleared and then carry on". That doesn't
0:44 always work. You're not always in a situation where that's possible, and we're going talk about other options as well, Remember.
0:50 But if monitoring the amount of memory you're using over time is something want to do, well we've already been using the library, indirectly,
0:59 that'll help you. So this is a cross platform library for retrieving
1:03 information on running processes and how much they're using of the system. CPU, memory disk,
1:08 all kinds of stuff. So you can go crazy. And it's really good for system monitoring and
1:12 profiling, and it does things like ps and top and whatnot that you might know of from like the UNIX command monitoring tools.
1:21 The one you probably care most about, at least in the scenario that I've laid out for you,
1:26 is "How do I go and get the current working memory in Bytes?" is what we do we get the OS, get the current running id of our process and we go to
1:36 psutil, grab the process directly, and then we can ask for a memory info. A bunch of stuff in there, and the one that we want to care about is,
1:44 like the resident memory, so RSS, and print that out. That comes out and bytes. How many
1:49 bytes your current processes using. Now the OS can move this around and like it can be shared and all kinds of funky stuff,
1:56 but it'll at least give you a sense of how much memory you're using.