gpt4 book ai didi

javascript - 为什么我们使用 SpreadsheetApp.flush();?

转载 作者:数据小太阳 更新时间:2023-10-29 05:51:33 26 4
gpt4 key购买 nike

我是一个完全的初学者。

我阅读了 Google 文档以了解解决方案。我在网上搜索了同样的内容。我也在 StackOverflow 上搜索了同样的内容。

但是。一切似乎都是技术性的。

What I understand is, .Flush helps to execute the functions as and when they happen without bundling them in one.

我说得对吗?如果不是,通俗地说是什么意思?请举一个简单的例子。谢谢。

最佳答案

当程序员想要确保在继续之前将先前代码的输出和/或效果写入电子表格时,他们将使用 flush()。如果您不使用 flush(),则可以通过使用一些内置的缓存和操作捆绑来自动“优化”代码。通常,您不需要使用 flush(),除非您特别确实需要...如果这有意义的话。

首先,老官方文档:

flush()

Applies all pending Spreadsheet changes. Spreadsheet operations are sometimes bundled together to improve performance, such as when doing multiple calls to Range.getValue(). However, sometimes you may want to make sure that all pending changes are made right away, for instance to show users data as a script is executing.

explainlikeimfive 怎么样?类比:假设您正在数一棵有 100 个苹果的树上的苹果数。

可以单独数数并记录每个苹果,如下所示:

1, 2, 3, 4, 5, >6...等

这就像在循环中执行 flush(),因为您实际上是在每个 count 操作之后进行写入。您最终会在论文上写 100 次,并且假设用手写字比用眼睛数数要花更长的时间。

一个“优化”的过程(在这种情况下)是使用你的内存/缓冲区并在写下一个数字之前数出 5 个苹果,所以你会写

5, 10, 15, 20...等

现在您最终会写论文 20 次(减少了 80%),尽管必须数相同数量的苹果,但您已经减少了必须写的次数这样做,因此您将通过减少运行时间看到显着的性能优势。

这大致解释了 Apps 脚本操作的工作方式。在所有计算中,内存操作执行速度最快,而读/写(也称为输入/输出)操作最慢(查看您的 Execution Transcript 以获得进一步证明)。这就是为什么只有当您特别需要在代码执行的特定点将数据写入电子表格时才应使用 flush()

希望这对您有所帮助。

关于javascript - 为什么我们使用 SpreadsheetApp.flush();?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com