Profilerstellung der Leistung eines Google App-Skripts

8

Ich habe ein Google App Script geschrieben, um Google Analytics-Daten in eine Google-Tabelle einzutragen. Es ist ein ziemlich lang laufendes Skript, das mehrere Anfragen an die GA Reporting API sendet. Es verwendet auch die ScriptDB von Google App.

Gibt es eine gute Möglichkeit, jeden Schritt der Skriptleistung zu profilieren, damit ich herausfinden kann, welche Bereiche am längsten brauchen, damit ich in bestimmten Bereichen mit der Optimierung beginnen kann?

    
eywu 30.12.2013, 19:26
quelle

4 Antworten

7

Das Execution Transcript ist sehr nützlich für diese Art von Dingen.

Sie können auch überall Logger.log() -Anweisungen eingeben, die die Zeit seit dem letzten Protokoll messen. Auf diese Weise können Sie Bereiche finden, deren Ausführung länger dauert.

Ich habe eine Tabelle , in die ich das Protokoll nach einer Ausführung und dann Formeln kopiere + bedingte Formatierung hilft mir, Bereiche zu identifizieren, die langsam sind.

    
Fred 30.12.2013, 21:02
quelle
12

Als Ergänzung zu Freds Antwort definieren Sie oben im Skript eine Variable start

%Vor%

dann in ein paar Logger.log() platziert eine strategische Punkte verwenden

%Vor%

und Sie werden eine ziemlich gute Vorstellung von dem bekommen, was vor sich geht ...

    
Serge insas 30.12.2013 21:06
quelle
1

Um die Antwort von Serge zu korrigieren, wo die Call-to-Date-Funktion ein Problem hat, können Sie diese Lösung verwenden.

%Vor%

Sie können die Kommentarzeilen durch Ihren Code ersetzen. Nach der Ausführung drücken Sie Strg + Eingabetaste oder Befehl ⌘ + Enter auf Mac, um die Protokolle anzuzeigen. Sie erhalten etwas wie folgt:

  

[17-01-18 12: 25: 58: 932 UTC] Die gesamte Ausführungszeit beträgt: 16586 ms

Also ist hier die Gesamtausführungszeit 16586 ms oder anders gesagt 16.586 Sekunden.

Darüber hinaus können Sie das folgende Codefragment zwischen Ihrem Code einfügen, um die Ausführungszeit von verschiedenen Teilen zu messen.

%Vor%     
Cyril 18.01.2017 13:10
quelle
0

Sie sollten wahrscheinlich die Methoden console.time(label) und console.timeEnd(label) , da Sie bei Verwendung von Date negative Ergebnisse erhalten könnten.

    
Marcono1234 14.02.2018 15:20
quelle