ホームページ >ウェブフロントエンド >jsチュートリアル >速度低下を避けるために Google Apps Script の処理時間を最適化するにはどうすればよいですか?

速度低下を避けるために Google Apps Script の処理時間を最適化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-02 19:26:15832ブラウズ

How Can I Optimize Google Apps Script Processing Time to Avoid Slowdowns?

Google Apps Script の処理時間の最適化

問題:

Google での過剰な処理時間アプリ スクリプト、特に範囲に対する getValue メソッドと setValue メソッドの繰り返し使用によるものオブジェクト。

説明:

Google サーバーへの呼び出しの数を減らし、読み取り操作と書き込み操作の交互を最小限に抑えるには、次の最適化の使用を検討してください。

への通話を最小限に抑えるサービス:

  • コストのかかるネットワーク リクエストを回避するために、Google Apps Script 自体内で実行できる操作を移動します。

先読みキャッシュ:

  • Google Apps Script の組み込みキャッシュを活用するには、読み取りと書き込みの回数を最小限に抑えます。

交互の読み取り/書き込みを最小限に抑える:

  • 効率が妨げられるため、読み取りと書き込みの交互操作を避けます。先読みのキャッシュ。

配列の使用:

  • 単一のコマンドでデータを配列に読み取り、配列上で操作を実行し、データを書き戻します。別のシングルのシートにコマンド。

例:

提供されたスクリプトを最適化する方法の例を次に示します:

オリジナルの遅いスクリプト:

for (row = 0; row < lastRow; row++) {
range1 = s.getRange(row + 1, 1);
cellValue = range1.getValue();

if (dash === '-' &amp;&amp; offset3) {
s.getRange(row + 1, 1, lastRow).offset(3, 0).moveTo(range1.offset(4, 0));
};    
}

最適化済み高速スクリプト:

const lastRow = s.getRange("A:A").getLastRow();
const range1 = s.getRange(`A1:A${lastRow}`);
let cellValues = range1.getValues();

cellValues.forEach((value, index) => {
if (value.startsWith("-") &amp;&amp; cellValues[index + 3]) {
range1.getRange(index + 1, 1, lastRow).moveTo(range1.offset(index + 4, 0));
}   
});

これらの最適化を実装することにより、スクリプトはサービスの呼び出し数を大幅に削減し、読み取り/書き込み操作を合理化し、処理時間が短縮されます。

以上が速度低下を避けるために Google Apps Script の処理時間を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。