Google apps script 分析Google应用程序脚本的性能

Google apps script 分析Google应用程序脚本的性能,google-apps-script,google-analytics,google-sheets,profiling,google-analytics-api,Google Apps Script,Google Analytics,Google Sheets,Profiling,Google Analytics Api,我已经编写了一个谷歌应用程序脚本,将谷歌分析数据拉入谷歌电子表格。这是一个相当长的运行脚本,向GA Reporting API发出多个请求,它还使用Google应用程序的ScriptDB 是否有一种很好的方法来分析脚本性能的每一步,这样我就可以找出哪些方面花费的时间最长,这样我就可以开始在某些方面进行优化了?执行记录对于这类事情非常有用 您还可以将Logger.log()语句放在测量自上次日志以来的时间的所有位置。这样,您可以找到需要更长时间执行的区域 我有一个脚本,在执行后复制日志,然后公式+

我已经编写了一个谷歌应用程序脚本,将谷歌分析数据拉入谷歌电子表格。这是一个相当长的运行脚本,向GA Reporting API发出多个请求,它还使用Google应用程序的ScriptDB


是否有一种很好的方法来分析脚本性能的每一步,这样我就可以找出哪些方面花费的时间最长,这样我就可以开始在某些方面进行优化了?

执行记录对于这类事情非常有用

您还可以将
Logger.log()
语句放在测量自上次日志以来的时间的所有位置。这样,您可以找到需要更长时间执行的区域


我有一个脚本,在执行后复制日志,然后公式+条件格式帮助我识别速度较慢的区域。

作为对Fred答案的补充,在脚本顶部定义一个变量
start

var start = new Date().getTime();
然后在几个
Logger.log()
中放置了一个战略点

Logger.log(new Date().getTime()-start);

您将非常清楚发生了什么…

要更正Serge的答案,当调用日期函数出现问题时,您可以使用此解决方案

function myFunction() {
  var start_time = new Date().getTime();
  /*
  your code goes here
  */
  Logger.log('Total execution time is :' + (new Date().getTime()-start_time) + ' ms');
}
您可以用代码替换注释行。执行后,按Ctrl+Enter或Command⌘ + 进入Mac查看日志。您将得到如下结果:

[17-01-18 12:25:58:932 UTC]总执行时间为:16586毫秒

所以这里的总执行时间是16586毫秒,或者换句话说是16.586秒

除上述内容外,您还可以在代码之间添加以下代码段,以测量不同部分的执行时间

Logger.log('Execution time till checkpoint 1:' + (new Date().getTime()-start_time) + ' ms');

您可能应该使用这些方法,因为在使用
Date

时可能会得到负面结果,所以基本工具是and(在前面的答案中提到)

现在我们可以使用和类控制台,包括和

为了让事情变得更好,我们还可以通过BigQuery将Stackdriver日志发送到GoogleDataStudio,这样我们就可以建立有用的指标来跟踪分析数据

参考资料


请考虑我的答案:对LoggER方法的一个简单补充。当然,使用SS的解决方案更方便,尽管设置起来有点复杂。顺便说一句,我投了赞成票:-)天哪,我甚至不知道“处决记录”!太棒了!你制作的电子表格也很棒!它可以快速帮助我识别减速。谢谢应该纠正的错误是什么?您使用的是与Serge'sI完全相同的“调用日期”功能。Serge'sI没有看到在Google Apps脚本服务器端代码上使用日期时出现负面结果的报告。你看到过吗?没有,我也没有看到过,但我更多地是在谈论一个普遍的问题,即现实世界的时钟可能会同步,因此产生的差异会变成负值。尽管我怀疑这会发生在谷歌的服务器上。