Efficiently Measure Python Object Memory Usage with sys.getsizeof()
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 an iterable object that only behaves like a list of numbers, but internally simply keeps count of the last iteration number. 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 Python list of numbers from the same range:
import sys myreallist = [x for x in range(0, 10000)] print(sys.getsizeof(myreallist)) # 87632
That’s roughly 87KB for 10,000 numbers.
Python
- Mastering Python For Loops: Syntax, Examples, and Advanced Patterns
- Mastering Python Objects & Classes: A Practical Guide
- Hello World: Building Your First Python Application
- Mastering Python's range() Function: From Basics to Advanced Use Cases
- Python time.sleep(): How to Add Delays in Your Code (Example)
- Checking File and Directory Existence in Python – A Practical Guide
- Master Python Debugging: Efficient Techniques & Best Practices
- Enforce a Minimum Python Version in Your Script
- Quarterly Supply Chain Health Check: Ensure Smooth Operations
- Prepare Your Excavator for Spring: A Comprehensive Guide