setValues比setValue慢吗? 注意:

问题描述

我有一个运行有多个人参与的,带有Google Apps脚本脚本的Google文档。人们编辑工作表时会触发一个onEdit触发器。据我了解,如果有人编辑工作表,则会触发我的onEdit触发功能

如果第二个人在第一个onEdit完成处理之前编辑工作表,则它将停止第一个实例,而第二个onEdit在不完成第一个实例的情况下启动。

为避免这种情况,我尝试通过以下理论使我的代码尽可能高效:如果onEdit进程花费的时间较少,那么重叠的可能性就较小。为了做到这一点,我尝试最小化我的读/写。通过使用一系列的记录器语句,我跟踪了很耗时的代码行。我注意到我的setValues()行之一需要近6秒钟来运行。在对它进行调整之后,这是一个很大的数组,会被发回到工作表中。

我的问题:

  1. setValues()相比,setValue()通话需要更长的时间吗?
  2. 与大数组的setValues()相比,对小数组的setValues()调用所花费的时间短吗?

我知道一个setValues()会比1000个setValue()命令快得多。

我认为无论大小如何,一次写入工作表应该花费相同的时间。有什么办法可以使这段时间最小化?

解决方法

问题1:setValues()setValue()需要更长的时间吗?

A1:不是。关于这一点,您可以从以下实验结果中看到。

enter image description here

Q2:小数组的setValues()调用比大数组的setValues()花费更少的时间吗?

A2:是的。关于这一点,您可以从以下实验结果中看到。

enter image description here

Q3:我假设一次写入工作表应该花费相同的时间,而不管大小如何。有什么办法可以使这段时间最小化?

A3:如果您想减少更多输入值的过程成本,那么如何使用Sheets API?关于这一点,您可以在“ A2”处看到它。

注意: