[Python-de] Speicherverbrauch messen

Gerhard Häring haering_python at gmx.de
Mon May 13 13:53:59 EDT 2002


* Martin v. Loewis <martin at v.loewis.de> [2002-05-13 07:35 +0200]:
> Gerhard Häring <haering_python at gmx.de> writes:
> 
> > Wo wir gerade beim Debuggen sind: ich möchte gerne verschiedene
> > Python-Datenstrukturen bzgl. des Speicherverbrauchs
> > vergleichen. Weil hier eine Python-Extension im Spiel ist, geht das
> > nicht so einfach, man müsste wohl die komplette Objektstruktur
> > durchgehen und mit dem sizeof()-Äquivalent aus mxTools die Größe der
> > Objekte bestimmen und aufsummieren.
> 
> Kommt drauf an, welche Art von Aussage Du bekommen möchtest. Wenn Du
> den gesamten Speicherbedarf für ein gewisses Datum ermitteln willst,
> ist mxTools (oder jeder andere portable automatische Mechanismus) nur
> eine recht ungenaue Näherung. [...]

Ersatzweise reicht durchaus der Speicherverbrauch des Programms.
 
> [...] Das ist auch nicht gut geeignet: Das zählt den Speicher in Form von
> Seiten; da kommen viele Rundungseffekte zum Zuge. Wenn Du da zu irgend einem
> Ergebnis kommst, denke ich, man kann "durch Draufgucken" zum gleichen
> Ergebnis kommen.

Genau, darum wollte ich ja wenigstens das "Draufgucken" mit top(1)
automatisieren, geht ja dank resource.rusage() :-)

> [...] Wozu benötigst Du eigentlich diese Informationen?

Ich hab ein Modul verbessert, so dass gleichartige Daten in einer Klasse statt
als Instanzvariablen gespeichert werden. Die Performance-Verbesserung habe ich
mit dem hotshot Modul gemessen, der Hauptzweck war jedoch Speicheroptimierung
und jetzt wollte ich wissen, wieviel das gebracht hat.

Die ungenaue Messung mittels top war dazu schon geeignet, ich hab einfach mal
eine Million mal so ein Objekt angezeigt, und alt vs. neu hat sich dann im
Speicherverbrauch schon in mehreren Megabytes bemerkbar gemacht.

Gerhard
-- 
This sig powered by Python!
Außentemperatur in München: 16.1 °C      Wind: 4.2 m/s



More information about the Python-de mailing list