分析 Google 应用脚本的性能

     2023-03-06     304

关键词:

【中文标题】分析 Google 应用脚本的性能【英文标题】:Profiling the Performance of a Google App Script 【发布时间】:2013-12-30 19:26:21 【问题描述】:

我编写了一个 Google 应用脚本来将 Google Analytics(分析)数据提取到 Google 电子表格中。这是一个相当长的运行脚本,它向 GA Reporting API 发出多个请求,它还使用 Google App 的 ScriptDB。

是否有一种分析脚本性能每个步骤的好方法,以便我可以确定哪些区域花费的时间最长,从而可以开始在某些区域进行优化?

【问题讨论】:

【参考方案1】:

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

var start = new Date().getTime();

然后在几个Logger.log()放置一个战略点使用

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

你会很好地了解正在发生的事情......

【讨论】:

【参考方案2】:

执行记录对这种事情非常有用。

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

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

【讨论】:

请按原样考虑我的回答:关于 Logger 方法的简单补充。您使用 SS 的解决方案当然更方便,尽管设置起来有点复杂。顺便说一句,我投了赞成票:-) 天哪,我什至不知道“执行记录”!惊人的酱汁!你制作的那个小电子表格也很棒!它可以快速帮助我识别减速。谢谢!【参考方案3】:

基本工具是execution transcript 和Class Logger(在之前的答案中提到)

现在我们可以使用Stackdriver logging 和包含console.time 和console.timeEnd 的类控制台。

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

参考文献

Stackdriver Logging for Google Apps Script is now available Identify and understand errors in Apps Script with Stackdriver

【讨论】:

【参考方案4】:

要纠正 Serge 的回答,即调用 Date 函数有问题,您可以使用此解决方案。

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 ⌘ + Enter 在 Mac 上查看日志。你会得到类似下面的东西:

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

所以这里的总执行时间是 16586 毫秒,也就是 16.586 秒。

除了上述之外,您还可以在代码之间添加以下 sn-p 以测量不同部分的执行时间。

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

【讨论】:

Serge's answer 有什么问题需要纠正? 您使用与 Serge 的完全相同的 Date 函数调用【参考方案5】:

您可能应该使用console.time(label)console.timeEnd(label) 方法,因为使用Date 时可能会得到否定结果。

【讨论】:

我没有看到在 Google Apps 脚本服务器端代码上使用 Date 时产生负面结果的报告。你见过吗? 不,我也没有看到,但我更多地谈论的是现实世界的时钟可能会同步的一般问题,因此产生的差异会变成负数。虽然我怀疑这会发生在 Google 的服务器上。

Google Chrome 中常规和性能分析器模式之间的区别

】GoogleChrome中常规和性能分析器模式之间的区别【英文标题】:DifferencebetweenregularandperformanceprofilermodeinGoogleChrome【发布时间】:2019-10-1012:13:05【问题描述】:我正在尝试在Angular7应用程序中调试JS(propellerjs)动画,该应用程序在req... 查看详情

性能测试步骤

1测试准备(需求分析、明确测试的目的指标、了解系统架构、指定测试的用例、制定测试计划、评估工时)2搭建测试环境(选择测试工具、被测试的系统环境搭建、网络等配置工作准备、可能会用到的数据准备)3脚本开发(选... 查看详情

php性能分析

...话题来进行探讨的。从源码、应用场景、基准性能、对比分析等几个方面深入分析 查看详情

无法向 Google 应用脚本授予授权或许可

】无法向Google应用脚本授予授权或许可【英文标题】:GoogleAppScriptscannotbegivenAuthorizationorPermission【发布时间】:2018-08-2507:46:49【问题描述】:为什么我无法向我也使用同一个Google帐户创建的GoogleApps脚本授予权限/授权?Google似乎... 查看详情

提交表单后发送电子邮件的 Google 表单应用脚本

】提交表单后发送电子邮件的Google表单应用脚本【英文标题】:GoogleformAppsScripttosendemailafterformsubmission【发布时间】:2021-11-1118:32:53【问题描述】:我正在尝试修改here和here解释的google-form应用脚本。该脚本运行良好,没有任何问... 查看详情

识别修改 Google 表格的外部应用程序脚本

】识别修改Google表格的外部应用程序脚本【英文标题】:IdentifyExternalAppsScriptThatModifiesGoogleSheet【发布时间】:2021-05-2408:53:07【问题描述】:有一个带有绑定Apps脚本的Google表格。应用自定义格式等的功能之一(由我前段时间编写... 查看详情

Google 应用脚本中的 Adword 脚本

】Google应用脚本中的Adword脚本【英文标题】:AdwordScriptinGoogleAppScripts【发布时间】:2013-07-1207:35:55【问题描述】:我无法在GoogleAppScript中找到AdwordAPI支持,我可以从adword帐户编写adword脚本,但目前我正在处理多个帐户(几乎25个... 查看详情

性能测试分析思路

1.分析原则由外到内,有表到里,层层深入。一个应用系统性能开始出现下降的最直接表现就是系统的响应时间变长。于是,系统响应时间成为分析性能的起点。而任何复杂的系统都可以分为网络和服务器两个部分,·我们可以像... 查看详情

Google Play 警告:您的应用包含跨应用脚本漏洞

】GooglePlay警告:您的应用包含跨应用脚本漏洞【英文标题】:GooglePlaywarning:YourappcontainsaCross-AppScriptingVulnerability【发布时间】:2019-04-0507:55:38【问题描述】:大家好,我收到一封来自googleplay的电子邮件,内容涉及我发布的一个... 查看详情

添加到 Nuxt.js 应用程序分析脚本,其执行取决于当前 url

】添加到Nuxt.js应用程序分析脚本,其执行取决于当前url【英文标题】:AddtoNuxt.jsapplicationanalyticsscript,whichexecutiondependsoncurrenturl【发布时间】:2021-10-0507:51:16【问题描述】:我有Nuxt.js应用程序,它使用“通用”模式。我的任务是... 查看详情

guava源码分析(cache原理)(代码片段)

前言Google出的Guava是Java核心增强的库,应用非常广泛。我平时用的也挺频繁,这次就借助日常使用的Cache组件来看看Google大牛们是如何设计的。缓存本次主要讨论缓存。缓存在日常开发中举足轻重,如果你的应用对某类数据有着... 查看详情

性能测试入门--工作流程

一、性能测试准备需求分析明确性能测试目标i了解软件功能、服务器架构制定测试计划、评估工作量制定测试模型(类似编写测试用例)2、搭建性能测试环境工具选项与准备工作搭建性能测试环境(性能测试环境资源配置和生... 查看详情

哪些 Google 应用脚本 API 需要 OAuth 访问令牌?

】哪些Google应用脚本API需要OAuth访问令牌?【英文标题】:WhatGoogleappsscriptAPIsrequireOAuthaccesstoken?【发布时间】:2019-04-1612:39:33【问题描述】:Google应用程序脚本提供了ScriptApp.getOAuthToken()API以获取有效用户的OAuth2.0访问令牌。API文... 查看详情

无法使用应用脚本 (script.google.com) 上的推送端点创建订阅

】无法使用应用脚本(script.google.com)上的推送端点创建订阅【英文标题】:UnabletocreatesubscriptionwithapushendpointonAppScript(script.google.com)【发布时间】:2015-08-1513:32:06【问题描述】:我一直在使用GoogleAppScript上的Pub/SubRESTAPI。我尝试在sc... 查看详情

Google 应用程序脚本 - 映射数组

】Google应用程序脚本-映射数组【英文标题】:Googleappsscript-Mappingarrays【发布时间】:2019-11-2402:45:00【问题描述】:我正在开展一个项目,我将多列/行库存表转换为多行/2列格式以进行订单拣选。我有一个用于选择适当库存表的... 查看详情

Google 性能工具 (gperftools) 上的 CPU 分析器 - 使用共享库进行处理,没有输出问题

】Google性能工具(gperftools)上的CPU分析器-使用共享库进行处理,没有输出问题【英文标题】:CPUprofileronGooglePerformanceTool(gperftools)-ProcesswithsharedlibrarywithNOOUTPUTISSUE【发布时间】:2016-10-0503:41:32【问题描述】:我在服务器上有一个进... 查看详情

android应用接入apminsightapm

...plicationPerformanceManagement,APM)需要提供的性能数据采集、分析、监控等基本功能,并且还要能够支持实时检测、分析并可视化展示应用各项性能指标统计数据。然后,移动客户端、H5等多端通过埋点及网络探针数据的采集和上报... 查看详情

jmeter脚本录制与性能指标分析

一.浏览器代理设置(猎豹)1.打开猎豹浏览器,进行如下图操作2.点击局域网设置3.输入如下信息,注意端口不要重复4.输入网址www.baidu.com,不能正常访问就是正确的5.查看添加的端口是否存在无端口则说明设置成功   &n... 查看详情