Profiling Python-Generatoren

Ich passe eine Anwendung an, bei der Generatoren häufig verwendet werden, um die Ergebnisse zu erzielen und eine web.py-Webschnittstelle bereitzustellen.

isher konnte ich den Aufruf der for-Schleife und der ausgabeerzeugenden Anweisungen in eine Funktion einbinden und diese mit @ aufrufecProfile.run() oderrunctx(). Konzeptionell:

def output():
    for value in generator():
        print(value)

cProfile.run('output()')

In web.py muss ich das folgendermaßen umbrechen, da ich mit @ in jedem Iterationsschritt sofort eine Ausgabe der möglicherweise langwierigen Berechnung erzeugen möchtyield:

class index:
    def GET(self):
        for value in generator():
            yield make_pretty_html(value)

Gibt es eine Möglichkeit, alle Aufrufe an den Generator wie im ersten Beispiel zu profilieren, wenn sie wie im zweiten verwendet werden?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage