過度の Range.getValue() および Range.setValue() 呼び出しが原因で処理時間が長くなる可能性があります
問題の説明
スクリプトが列をスキャンします顧客の注文情報を管理し、州コードを識別し、姓と名を組み合わせます。また、必要に応じて空白行も挿入されます。ただし、Range.getValue() と Range.setValue() を頻繁に呼び出すため、大きな列の処理時間は過剰になります。
最適化
処理時間を短縮するには、呼び出しを最小限に抑えることをお勧めします。 Range.getValue() や Range.setValue() などの Google のサービスに接続します。次の最適化を実装できます:
-
サービス呼び出しを最小限に抑える: Google サーバーへの冗長な呼び出しを回避します。たとえば、ループ内で Range.getValue() と Range.setValue() を使用する代わりに、必要なデータをすべて配列に一度読み取り、それを 1 回のバッチでスプレッドシートに書き戻します。
-
-Ahead Caching: Google Apps Script は値をキャッシュして、繰り返しの呼び出しを減らします。交互の読み取りコマンドと書き込みコマンドを最小限に抑えてスクリプトを最適化し、キャッシュを効果的に利用できるようにします。
-
配列の使用: データを配列 (2 次元の JavaScript 配列) に取得し、その配列に対して操作を実行します。配列内のデータ。これにより、スプレッドシートに対する読み取りおよび書き込み呼び出しの数が減少します。
-
読み取り/書き込みの交互の使用を避ける: 先読みキャッシュ メカニズムをバイパスする可能性があるため、読み取りコマンドと書き込みコマンドを交互に使用しないでください。同様の操作 (読み取りや書き込みなど) をまとめてバッチ処理します。
コードの改善
以下は、過剰な処理時間の問題に対処する最適化されたスクリプトです:
これらの最適化に従うことにより、スクリプトは、Range.getValue() およびRange.setValue().
以上がGoogle Apps Script を最適化して、頻繁な Range.getValue() および Range.setValue() 呼び出しによる過剰な処理時間を短縮するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。