讓 Apps Script 加速的 3 個技巧
Google Apps Script 是自動化行政流程的好幫手,但當程式跑得太慢,甚至執行逾時或超額配額卡住,再好的腳本也沒有用。
這裡有三個小技巧,幫你的程式踩了一腳油門,讓它跑得又快又穩!
拒用 appendRow() ,改用批量寫入
如果你常用 Google Sheet,可能會覺得 appendRow() 很好用,處理完資料直接寫進 Sheet。但你可能不知道,它每次都要呼叫 API 操作,而且每次只寫入一筆。
當有大量資料時,這種操作就像用滴管裝水,會慢得讓人崩潰。
改善方法:批量處理資料
用 記憶體暫存(Array)儲存資料,最後一次性用 setValues() 全部寫回表格,減少呼叫 API。
錯誤範例
優化範例
同樣道理,像 insertRowAfter() 或 deleteRow() 這些操作,還有 getValue()、setValue() 的頻繁使用,都應該能省就省。核心觀念是:減少 API 呼叫,靠記憶體多處理。
別亂開 Logger.log()
Logger.log() 是很實用的偵錯工具,但它也是隱形的效能殺手,因為它也是一種 API 呼叫操作。如果在大迴圈裡不加過濾,拼命寫 Log,程式執行時就會一直等待 Log 寫入與回應。
改善方法:加上日誌開關
設置全域變數作為 Debug 模式的開關,必要時才啟用記錄,避免不必要的日誌生成。
範例: Debug Mode 的參考結構
觸發器記得加防呆條件
若使用「開啟文件」或「編輯時」觸發器,務必加上條件判斷,確保程式只在需要時執行,避免每次觸發都浪費資源跑整支程式。
範例:只有目標工作表或欄位才執行
結語
有些人覺得:「反正程式在背景跑,慢就慢嘛,我又沒差。」我完全同意這種看法!就像洗碗機明顯洗得很慢,可是我不用動手啊!慢就慢吧!
但問題是,Google 免費版 Apps Script 的配額有限:每天運算時間 90 分鐘,每次最長 6 分鐘。這些配額對大多數人夠用,但如果你寫的腳本特別吃資源,就可能會把額度耗光。
透過這些小技巧,讓你的 Apps Script 更高效,節省配額又能穩定運行,輕鬆當個效率大師!
