亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我們使用SpreadsheetApp.flush();?

為什么我們使用SpreadsheetApp.flush();?

慕工程0101907 2019-12-06 09:32:31
我是一個完整的初學者。我閱讀了有關解決方案的Google文檔。我在互聯網上搜索了同樣的內容。我還搜索了StackOverflow來查找相同內容。但。一切似乎都是技術性的。據我了解,.Flush有助于在功能出現時立即執行這些功能,而無需將它們捆綁在一起。我對嗎?如果不是的話,外行人的含義是什么?并請舉一個簡單的例子。謝謝。
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

程序員flush()在希望確保在繼續之前將先前代碼的輸出和/或效果寫入電子表格時會使用。如果您不這樣做flush(),則可以通過使用一些內置的緩存和操作綁定來自動“優化”代碼。一般情況下,你不需要使用flush(),直到您特別DO需要......如果是有道理的。

首先,您以前的官方文檔:

flush()

應用所有待處理的電子表格更改。電子表格操作有時會捆綁在一起以提高性能,例如在多次調用Range.getValue()時。但是,有時您可能需要確保立即進行所有待處理的更改,例如在執行腳本時向用戶顯示數據。

怎么樣解釋類似的類比:假設您是在一個有100個蘋果的樹上數蘋果。

可以分別計算和記錄每個蘋果,如下所示:

1,234,56...等等。

這就像flush()在循環中進行,因為您實際上是在每次count操作之后進行編寫。您最終將在紙上書寫100次,并且假設用手指書寫的時間要比用眼睛數的時間更長。

一個“優化的”過程(在這種情況下)是在記下數字之前使用您的內存/緩存并計數5個蘋果,因此您應該

5,10,15,20...等等。

現在,您將最終在紙上書寫20次(減少了80%),盡管必須計算相同數量的蘋果,但您卻減少了必須執行的寫操作次數,因此您將獲得驚人的性能通過減少運行時間而受益。

這大致可轉換為Apps腳本操作的工作方式。與所有計算一樣,內存中操作執行最快,而讀/寫(aka輸入/輸出或I / O)操作最慢(請檢查執行記錄以獲取進一步證明)。這就是為什么只flush()在特別需要在代碼執行的特定點將數據寫入電子表格時才使用它的原因。

希望這可以幫助。


查看完整回答
反對 回復 2019-12-06
  • 1 回答
  • 0 關注
  • 493 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號