Efficiënt Python-objectgeheugen meten met sys.getsizeof()
Met sys.getsizeof() kun je het geheugengebruik van een object controleren:
import sys mylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48
Wow… wacht… waarom is deze enorme lijst slechts 48 bytes?
Dit komt doordat de range-functie een iterabel object retourneert dat zich gedraagt als een lijst met getallen, maar intern slechts de laatste iteratienummer bijhoudt. Een range is veel geheugenefficiënter dan een echte lijst met getallen.
Je kunt dit zelf zien door een list comprehension te gebruiken om een echte Python-lijst met getallen uit dezelfde range te maken:
import sys myreallist = [x for x in range(0, 10000)] print(sys.getsizeof(myreallist)) # 87632
Dat is ruwweg 87 KB voor 10.000 getallen.
Python
- Essentiële lentevoorbereiding voor bouwapparatuur: tijd besparen en levensduur verlengen
- Kwartaallijkse toeleveringsketengezondheidscheck: Zorg voor soepel operaties
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python For Loops onder de knie krijgen: Syntaxis, Voorbeelden en Geavanceerde Patronen
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python's range()-functie onder de knie: van basis tot geavanceerde use cases
- Python time.sleep(): Hoe vertraging toe te voegen aan je code (voorbeeld)
- Bestands- en directory-bestaat controleren in Python – Een praktische gids