Speicher-Verwendung des dictionary in Python?
Ich bin etwas verwirrt, wenn ich den getsizeof
Methode in der sys
- Modul für Wörterbücher. Unten habe ich einen einfachen Wörterbuch der beiden strings. Die beiden strings' Größen sind deutlich größer als die des Wörterbuchs. Die Wörterbuch-Größe ist wahrscheinlich das Wörterbuch overhead nur, D. H., es braucht nicht die tatsächlichen Daten zu berücksichtigen. Was ist der beste Weg, um herauszufinden, den memory-Verbrauch des gesamten Wörterbuch (Schlüssel, Werte, Wörterbuch overhead)?
>>> first = 'abc'*1000
>>> second = 'def'*1000
>>> my_dictionary = {'first': first, 'second': second}
>>> getsizeof(first)
3021
>>> getsizeof(second)
3021
>>> getsizeof(my_dictionary)
140
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der PythonDocs
Also es zählt nur der Aufwand, sondern Sie können die Funktion nutzen, in dieser link Berechnung für Behälter, wie dicts.
d = dict(a="4", b="4", c="4", d="4")
es ist das überspringen entsprechenden Werteb,c,d
"4"
Gut, Wörterbücher speichern nicht die tatsächliche Zeichenfolge in Ihnen, es funktioniert ein bisschen wie C/C++ - Zeiger, so erhalten Sie nur einen Konstanten Aufwand in das Wörterbuch für jedes element.
Die Gesamtgröße ist
Den rekursiven
getsizeof
würde sich die tatsächliche Größe, aber wenn Sie mehrere Schichten von Wörterbüchern und wollen sich nur um eine grobe Schätzung. Diejson
kommt praktisch.