Heim > Web-Frontend > js-Tutorial > Wie kann ich Google Apps Script optimieren, um lange Verarbeitungszeiten zu reduzieren, die durch häufige Aufrufe von „getValue()' und „setValue()' verursacht werden?

Wie kann ich Google Apps Script optimieren, um lange Verarbeitungszeiten zu reduzieren, die durch häufige Aufrufe von „getValue()' und „setValue()' verursacht werden?

Susan Sarandon
Freigeben: 2024-12-08 09:00:23
Original
680 Leute haben es durchsucht

How Can I Optimize Google Apps Script to Reduce Long Processing Times Caused by Frequent `getValue()` and `setValue()` Calls?

Lange Verarbeitungszeit: Adressierung von getValue() und Zelleneinfügungen

In Ihrem bereitgestellten Code ist das Problem der übermäßigen Verarbeitungszeit auf die Häufigkeit zurückzuführen Verwendung der Methoden Range.getValue() und Range.setValue() innerhalb einer Schleife. Während das Skript jede Zelle in Spalte A durchläuft, liest und schreibt es Werte mehrmals, was die Ausführung erheblich verlangsamt.

Optimierung des Codes

Um diese Leistung zu beheben Bei diesem Problem ist es wichtig, die Aufrufe von Diensten zu minimieren und sich dabei vor allem auf die Reduzierung der Anzahl der Range.getValue()- und Range.setValue()-Operationen zu konzentrieren. So können Sie Ihren Code optimieren:

Batch-Lesevorgänge

Anstatt den Wert jeder Zelle einzeln mit range1.getValue() abzurufen, lesen Sie die Werte aller benötigte Zellen in einem Batch-Vorgang. Wenn Sie beispielsweise die Werte der aktuellen Zeile und der nächsten drei Zeilen benötigen, können Sie s.getRange(row 1, 1, 4, 1).getValues() verwenden, um sie alle auf einmal abzurufen.

Batch-Schreibvorgänge

Anstatt die Werte einzelner Zellen festzulegen, sammeln Sie auf ähnliche Weise alle Werte, die geschrieben werden müssen, und sammeln Sie sie dann Weisen Sie sie in einem Batch-Vorgang zu. Wenn Sie beispielsweise Werte in die aktuelle Zeile und die nächsten drei Zeilen schreiben möchten, können Sie range1.offset(0, 0, 4).setValues([["data 1"], ["data 2"], ["Daten 3"], ["Daten 4"]]); um dies zu tun.

Beispiel für eine Optimierung

Hier ist eine optimierte Version Ihres Codes, die diese Optimierungen enthält:

function format() {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getActiveSheet();
    var lastRow = s.getRange("A:A").getLastRow();

    var allValues = s.getRange(1, 1, lastRow, 1).getValues();

    // Loop through all rows in the spreadsheet
    for (var row = 0; row < lastRow; row++) {
        var cellValue = allValues[row][0];
        if (typeof cellValue === 'number') {
            continue;
        }
    }
}
Nach dem Login kopieren

Durch die Verwendung dieser Optimierungen können Sie die Anzahl der Aufrufe von Diensten erheblich reduzieren und die Leistung Ihres Skripts verbessern. Dieser Ansatz reduziert die Anzahl der Aufrufe von Diensten von 8 pro Schleife auf nur 2, was zu einer erheblichen Verkürzung der Verarbeitungszeit führt.

Das obige ist der detaillierte Inhalt vonWie kann ich Google Apps Script optimieren, um lange Verarbeitungszeiten zu reduzieren, die durch häufige Aufrufe von „getValue()' und „setValue()' verursacht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage