由於過度使用getValues 和setValues 導致處理時間較長
問題:
代碼因過度使用getValues 和setValues方法而受到影響,這可能會嚴重影響處理時間,特別是對於較大的資料集。
最佳化服務:
最小化服務呼叫:
前瞻性快取:
最小化讀取/寫入操作:
避免交替讀取/寫入:
使用陣列:
範例:
考慮以下程式碼片段:
// Slow version: Alternating read and write operations const sourceRange = SpreadsheetApp.getActiveSheet().getRange("A1:D2"); const targetRange = sourceRange.offset(2, 0); for (let i = 0; i < sourceRange.getNumRows(); i++) { for (let j = 0; j < sourceRange.getNumColumns(); j++) { const value = sourceRange.getCell(i + 1, j + 1).getValue(); targetRange.getCell(i + 1, j + 1).setValue(value); } } // Fast version: Batch read and write operations const sourceValues = sourceRange.getValues(); targetRange.setValues(sourceValues);
透過批次讀取和寫入操作,第二個程式碼片段顯著減少了對服務的呼叫次數並縮短了處理時間。
以上是為什麼我的 Google Apps 腳本這麼慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!