Python line_profiler Codebeispiel

8

Ich versuche herauszufinden, wie ich Pythons line_profiler ausführen kann, um die zeilenweisen Ausführungszeiten im Format zu erhalten in der Antwort auf diese Frage .

Ich habe das Modul installiert und rufe sein LineProfiler -Objekt wie folgt auf, aber die Ausgabe, die ich bekomme, ist nur ein einziges Mal und keine zeilenweise Zusammenfassung.

Irgendwelche Ideen? Wie kann ich außerdem die Zeit für die numbers = [random.randint(1,100) for i in range(1000)] -Zeile erhalten, die außerhalb einer Funktion liegt?

%Vor%     
Rhubarb 11.03.2014, 14:08
quelle

2 Antworten

18

Die line_profiler Testfälle (gefunden auf GitHub ) haben eine Beispiel für das Generieren von Profildaten aus einem Python-Skript. Sie müssen die Funktion, die Sie profilieren möchten, umbrechen und dann den Wrapper aufrufen, indem Sie alle gewünschten Funktionsargumente übergeben.

%Vor%

Ausgabe:

%Vor%

Hinzufügen zusätzlicher Funktionen zum Profil

Sie können auch zusätzliche Funktionen hinzufügen, die ebenfalls profiliert werden sollen. Wenn Sie zum Beispiel eine zweite Funktion namens haben und Sie nur die aufrufende Funktion umschließen, sehen Sie nur die Profilergebnisse von aufrufen Funktion.

%Vor%

Das obige würde nur die folgende Profilausgabe für die aufrufende Funktion erzeugen:

%Vor%

In diesem Fall können Sie die zusätzliche Funktion namens zu einem Profil wie diesem hinzufügen:

%Vor%

Ausgabe:

%Vor%

HINWEIS: Das Hinzufügen von Funktionen zum Profil auf diese Weise erfordert keine Änderungen am Profilcode (d. h., es müssen keine @profile Decorators hinzugefügt werden).

    
tdube 12.04.2017 17:55
quelle
4

Wie in der Dokumentation beschrieben:

  

In Ihrem Skript können Sie jede Funktion, die Sie profilieren möchten, mit @profile

versehen

Sie möchten Ihre do_stuff -Funktion mit @profile dekorieren und dann

ausführen %Vor%

, um die mit Anmerkungen versehene Ausgabe auf Ihr Terminal zu drucken. Das Profil wird auch in script_to_profile.py.lprof geschrieben und Sie können die Ausgabe später mit

neu erstellen %Vor%     
kynan 11.07.2014 17:41
quelle

Tags und Links