在Google Apps script中使用库的脚本慢了多少?



如果我有多个脚本需要共享代码,一种方法是通过在Google Apps Scripting中添加库。然而,在帮助页的顶部,它警告:

警告

使用库的脚本运行速度不如将所有代码包含在单个脚本项目中的脚本运行速度快。尽管库可以使开发和维护更加方便,但在速度至关重要的项目中要谨慎使用它们。由于这个问题,应该限制在附加组件中使用库。

链接的文章说:

避免在ui重的脚本中使用库

库是重用代码的一种方便方法,但是它们稍微增加了启动脚本所需的时间。对于相对长时间运行的脚本,此延迟不明显…

然而,没有任何地方提到运行带有库的脚本比不带库的脚本要多花多少执行时间。在他们的一些例子中,他们展示了一个运行时间超过20秒的脚本,在这种情况下,+3秒的延迟可能是"不明显的"。但是,如果我的脚本通常需要2秒才能运行,那么3秒的延迟就会变得更加明显。

因此,粗略估计一个库在执行过程中增加了多少时间是有帮助的。

一个库增加到一个Google Apps脚本的执行时间的估计是多少?

From measurement library load speed

结果


总之,这意味着我发现加载库没有真正的代价。事实上,使用并行性时,库版本的性能似乎比所有代码都在本地时要好一些。我无法解释,但这似乎是一致的。

相关的

  • 如何内联一个GAS库来加速脚本?
  • 如何在Google Script中获得最佳性能?
  • ObjApp使应用程序脚本变慢了吗?有人实际测量过使用库导入对性能的影响吗?(目前无人接听)

我有一个web应用程序,我一直部署在遗留运行时下,它使用7个库。在传统运行时(Rhino)下,添加库似乎没有太大影响,我的doGet只花了0.2秒。然而,在V8下,doGet需要4.1秒。在V8下,当我从7个库中删除4个库时,doGet需要1.4 s。我在我的web应用程序的其他功能中也观察到这一点,每个运行的服务器端函数似乎都受到加载库的相同恒定延迟的影响。

注意:7个库本身也有库(这可能会使事情比V8下预期的要慢)。

小提示:这对我来说并不完全奇怪,因为根据我的经验,V8可能比Rhino慢得多(我认为JDBC在V8下可能会更慢)。此外,库不能在V8下调试(所以可能只是V8下没有那么多对库的支持(还没有?))。

相关内容

最新更新