Ich möchte Zeit und Speichernutzung der Klassenmethode Profil. Ich fand keine Out-of-Box-Lösung dafür (gibt es solche Module?), Und ich entschied mich, timeit
für die Zeitprofilierung und memory_usage
von memory_profiler
Modul zu verwenden.Wie verwendet man memory_profiler (Python-Modul) mit Klassenmethoden?
Ich konfrontiert ein Problem der Profilierungsmethoden mit memory_profiler
. Ich habe verschiedene Varianten ausprobiert, und keiner von ihnen hat funktioniert.
Wenn ich versuche, aus functools
teilweise zu nutzen, ich diesen Fehler:
File "/usr/lib/python2.7/site-packages/memory_profiler.py", line 126, in memory_usage
aspec = inspect.getargspec(f)
File "/usr/lib64/python2.7/inspect.py", line 815, in getargspec
raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <functools.partial object at 0x252da48> is not a Python function
By the way, genau der gleiche Ansatz arbeitet mit timeit
Funktion in Ordnung.
Wenn ich versuche, lambda
zu verwenden, da war ich diesen Fehler hätte:
File "/usr/lib/python2.7/site-packages/memory_profiler.py", line 141, in memory_usage
ret = parent_conn.recv()
IOError: [Errno 4] Interrupted system call
Wie kann ich Klassenmethoden mit memory_profiler umgehen?
PS: Ich habe Speicher-Profiler (0.26) (mit Pip installiert).
UPD: Es ist eigentlich Bug. Sie können den Status hier überprüfen: https://github.com/fabianp/memory_profiler/issues/47
Vielen Dank. Ich hab es geschafft. Es klappt. – rominf