Check memory usage of your Python objects

With sys.getsizeof() you can check the memory usage of an object:

import sys

mylist = range(0, 10000)
print(sys.getsizeof(mylist))
# 48

Woah… wait… why is this huge list only 48 bytes?

It’s because the range function returns a class thatonly behaves like a list. A range is a lot more memory efficient than using an actual list of numbers.

You can see for yourself by using a list comprehension to create an actual list of numbers from the same range:

import sys

myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist))
# 87632

If you liked this article, please share it:

Erik is the owner of Python Land and the author of many of the articles and tutorials on this website! He's been working as a professional software developer for 25 years. His favorite language of choice: Python!

Related articles

Leave a Comment