Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Objektspeicher effizient mit sys.getsizeof() messen

Mit sys.getsizeof() können Sie den Speicherverbrauch eines Python-Objekts überprüfen:

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

Wow … warten Sie … warum belegt diese riesige Liste nur 48 Bytes?

Das liegt daran, dass die range()-Funktion ein Iterierbares zurückgibt, das sich wie eine Liste von Zahlen verhält, intern aber lediglich den letzten Iterationswert speichert. Ein range-Objekt ist deutlich speichereffizienter als eine tatsächliche Liste von Zahlen.

Sie können dies selbst überprüfen, indem Sie eine List Comprehension verwenden, um eine echte Python-Liste aus dem gleichen Bereich zu erstellen:

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

Das sind etwa 87 KB für 10.000 Zahlen – ein massiver Unterschied gegenüber den 48 Bytes des range-Objekts.

Wichtiger Hinweis

sys.getsizeof() misst nur die Größe des Objekte selbst, nicht die Größe der referenzierten Objekte. Bei Containern wie Listen oder Dictionaries werden die referenzierten Elemente nicht rekursiv mitgerechnet. Für eine vollständige Speicheranalyse sollten Sie das Modul pympler oder tracemalloc verwenden.

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen
  7. Python time.sleep(): Delays in Ihrem Code hinzufügen (Beispiel)
  8. Datei- und Verzeichnisexistenz in Python prüfen – Ein praktischer Leitfaden
  9. Vierteljährlicher Supply-Chain-Gesundheitscheck: Für reibungslose Operationen sorgen
  10. Wichtige Frühlingsvorbereitung für Baumaschinen: Zeit sparen & Lebensdauer verlängern