SpreadsheetApp.flush() によるスプレッドシート操作の最適化
プログラミングの領域では、SpreadsheetApp.flush() メソッドが重要な役割を果たします。 Google スプレッドシート ドキュメントの操作が効率的かつ遅延なく実行されるようにするためです。これは、パフォーマンス最適化のための複数の操作のバンドルという、プログラマの間で共通の懸念事項に対処します。
flush() の重要性を理解するには、操作のバンドルの概念を理解することが不可欠です。パフォーマンスを向上させるために、Google Apps Script は複数の操作を自動的にまとめて、スプレッドシート サーバーへの読み取り/書き込み操作の数を減らすことがあります。この最適化により全体的な速度は向上しますが、スクリプトの望ましい動作と必ずしも一致するとは限りません。
ここで、flush() が活躍します。保留中のスプレッドシートの変更をすべて即座に適用することで、flush() は操作が発生したときに確実に実行され、意図しないバンドルを防ぎます。これは、後続の操作を続行する前に、スプレッドシート内の特定のデータが更新されていることを確認したい場合に特に有益です。
明確にするための例
カウントするスクリプトを検討してください。木の上のリンゴ:
function countApples() { const spread = SpreadsheetApp.getActive(); const sheet = spread.getSheetByName("Apple Tree"); // Count 100 apples and log each to the console for (let i = 1; i <= 100; i++) { const cell = sheet.getRange(i, 1); console.log(cell.getValue()); } }
このスクリプトでは、console.log() を呼び出すたびに、リンゴの数が出力されます。次のカウントが実行されます。ただし、操作がバンドルされている場合は、100 個のカウントがすべて完了するまで、個々のリンゴの出力が表示されない可能性があります。
各リンゴのカウントがすぐに表示されるようにするには、各ログ ステートメントの後に flash() を含めることができます。 :
for (let i = 1; i <= 100; i++) { const cell = sheet.getRange(i, 1); console.log(cell.getValue()); SpreadsheetApp.flush(); }
これで、各リンゴの数が遅延や束ねることなくコンソールに表示され、木のリンゴに関するリアルタイムの更新が提供されます。 count.
flush() を使用する場合
flush() は、意図しないバンドルを防ぐために必要な場合にのみ使用する必要があることに注意することが重要です。実際には、flush() を不当に使用すると、スプレッドシート サーバーへの読み取り/書き込み操作の数が増加するため、スクリプトのパフォーマンスが低下する可能性があります。
そのため、スクリプトの機能にとって操作の即時実行が重要かどうかを判断し、使用してください。オペレーション実行の制御を維持しながらパフォーマンスを最適化するために、flush() は控えめに実行します。
以上がSpreadsheetApp.flush() を使用してスプレッドシート操作を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。