浏览器控制台并计算多个javascript执行时间差异

2024-04-06

我可以轻松地做到这一点:

console.time('mytimer');
doSomeWork();
console.timeEnd('mytimer');

但是是否可以在多个函数中计算时间。我需要在全局变量中定义脚本的开始时间。然后在多个函数中,我将写下自时间开始以来经过了多少毫秒。并写出函数的名称,如下所示:

console.time('mytimer');
doSomeWork() {
  // console.log(difference between now and "mytimer"s start time)
  // console.log(name of the function: doSomeWork())
};
doSomeWork2() {
  // console.log(difference between now and "mytimer"s start time)
  // console.log(name of the function: doSomeWork2())
};
doSomeWork3() {
  // console.log(difference between now and "mytimer"s start time)
  // console.log(name of the function: doSomeWork3())
};
console.timeEnd('mytimer');

我将在 Chrome 26+ 中使用它来解决调试问题,因此使用浏览器相关函数(例如:arguments.callee.name)不是问题。

编辑:为了解决我的问题。
这有效:

console.time('myTimer1');
console.timeEnd('myTimer1');

这不起作用:

console.time('myTimer2');
console.time('myTimer2');

编辑:当然,可以编写太多计时器并检查每个计时器的时间。但我需要知道自从 JavaScript 代码在每一圈启动以来经过的时间。


如果您需要特定功能的时间,我想您知道它们可以通过 console.time() 和 console.timeEnd() 的参数来实现。有关它的更多信息请点击此处https://developers.google.com/chrome-developer-tools/docs/console/ https://developers.google.com/chrome-developer-tools/docs/console/ .

根据我对你问题的理解,你需要几圈来进行基准分析。

我定义了以下方法,您可以使用它们来获取以毫秒为单位的单圈时间。


Update: 使用表现 https://developer.mozilla.org/en-US/docs/Web/API/Performance/nowapi 是此类用例的推荐 API。

console.lapStart = function(name){
     window[name] = window[name] || {};
     window[name].globalTimer = performance.now();
}
console.showLap = function(name){
     currTime = performance.now();
     var diff = currTime  - window[name].globalTimer;
     console.log(arguments.callee.name, diff);
}
console.lapEnd = function(name){
     currTime = performance.now();
     var diff = currTime  - window[name].globalTimer;
     console.log(arguments.callee.name, diff);
     delete window[name]
}

请注意,这是粗略的代码,只能在开发中运行。否则,它可能会在全局对象中留下不好的痕迹,并在你的嘴里留下不好的味道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器控制台并计算多个javascript执行时间差异 的相关文章

  • 使用selenium IDE提取部分文本并将其放入变量中

    有人可以告诉我应该使用哪个命令来使用 Selenium Ide 从文本中仅提取数字 694575 并将其放入变量中以供进一步使用 这是带有文本的 div div class loginBoxTitle Edit Exhibition Cen
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck
  • Android Drawable 绘图性能?

    在我看来 我有一个简单的 ARGB 可绘制对象 大约需要 2 毫秒才能绘制 但我可以在 0 5 毫秒内绘制与位图相同的文件 只是一些快速代码 我真的不能认为它是一个选项 优化可绘制对象的绘制速度的最佳方法是什么 这取决于可绘制的数量以及每个
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • IronPython 中批量求值表达式的性能

    在 C 4 0 应用程序中 我有一个具有相同长度的强类型 IList 的字典 一个基于动态强类型列的表 我希望用户根据将在所有行上聚合的可用列提供一个或多个 python 表达式 在静态上下文中它将是 IDictionary
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 在javascript中动态生成行?

    我是 javascript 新手 我想在按下 Tab 时动态生成行 并希望获取在动态生成的行中输入的值 以便我可以在 servlet 代码中使用这些值 这是我的html
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o

随机推荐

  • 在主线程中的线程中引发未处理的异常? [复制]

    这个问题在这里已经有答案了 有一些类似的问题 但没有一个提供我需要的答案 如果我通过创建线程threading Thread 然后抛出未处理的异常 这些线程将被终止 我希望保留异常详细信息与堆栈跟踪的默认打印 但也关闭整个过程 我认为可能可
  • 为什么 constexpr 静态成员(类型为类)需要定义?

    gt 查看完整的代码片段和编译coliru http coliru stacked crooked com a e6ebe0ef8a87b601 我有一个文字类型 http en cppreference com w cpp concept
  • 获取本周的所有日期

    假设我将周日至周六视为一周 如何在 C 中获取本周的所有日期 例如 当前日期是30th March 2017 我需要的输出是 26 March 2017 27 March 2017 28 March 2017 29 March 2017 3
  • 如何检查字符常量是否符合 ASCII?

    对早期版本的评论这个答案 https stackoverflow com questions 42055919 how do i take in a1 style rowcolumn specifications as input 4205
  • 禁用 HighCharts 上的悬停

    我使用 HighCharts 库构建了一个饼图 这是我的图表 http jsfiddle net t2MxW 20890 var chart new Highcharts Chart colors 0072BC BFDAFF DDDF00
  • 这个 XSLT 效率低吗?

    我得到了答复我关于翻译 XML 文件的最后一个问题 https stackoverflow com questions 8274068 它激励我去玩它 我想出了一个不同的解决方案 但我感觉最后两个选择不是最佳的 可以用更好或更有效的方式来完
  • Bigcommerce 购物车页面和结帐页面忽略主题字体样式

    我有一个大型商业网站 这是网站链接https www taoaccents com https www taoaccents com我正在为网站使用简单的主题 我已经上传自定义字体并将其调用到 styles css 中 并使用正确的路径 下
  • 外部CSS文件加载但未应用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 湿件错误
  • 我可以判断 Amazon SQS 消息是否仍在传输中吗?

    给定一条 Amazon SQS 消息 有没有办法通过 API 判断它是否仍在运行中 或者 我是否需要记下收到消息时的时间戳 从当前时间中减去该时间戳 然后检查该时间戳是否小于可见性超时 使用 Amazon Simple Queuing Se
  • 免费/便宜的 PowerDesigner 替代品? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何获取ProgramFiles路径?

    我有奇怪的问题 我使用的是 Windows 7 Enterprise SP1 64 位 我需要为我的项目获取程序文件和程序文件 X86 目录路径 这就是我所做的 Environment GetFolderPath Environment S
  • C++ 将数字转换为单词

    我在一本书中发现了这个将数字转换为单词的程序 初始程序转换数字 1 1000 但随后要求您修改程序以接受最多 1 000 000 的数字 我可以处理 20 999 以内的数字 但无法处理超过 20 999 的数字 我一整天都在修改它 并在网
  • 当 API 7 上有溢出操作时,菜单按钮会使应用程序崩溃

    我正在尝试为 API 7 及更高版本实现操作栏 我正在使用 Android Studio 创建一个新的简单项目 配置如下 最低 SDK API 7 目标SDK API 14 编译 谷歌 API 14 主题 带深色操作栏的全息灯 设置创建活动
  • 为什么我们需要在 Swing 应用程序中扩展 JFrame?

    为什么我们需要延长JFrame构建 Swing 应用程序时的类 据我所知extends用于继承基类 没有任何功能JFrame类在以下程序中使用 但仍然被扩展 我知道我错过了一些信息 JFrame 类的某些功能是否在后台运行 1 Code i
  • 函数编程和模拟对象

    我最近正在观看 Clojure 上的网络广播 在其中 演讲者在讨论 Clojure 的 FP 性质时发表了评论 内容类似于 我希望我没有误会他 模拟对象在嘲笑你 不久前 当我观看微软反应式框架开始出现的网络广播时 我也听到了类似的评论 它类
  • Eclipse ADT“...无法解析”Android NDK 和 C 文件

    我的 NDK 项目的 Eclipse 索引器出现问题 那里有很多类似的线程 但似乎没有一个涉及相同的问题根源 我有一个 OpenGL ES 应用程序 我需要将其移植到纯粹用 C 编写的 Android 我想将其作为 NativeActivi
  • 如何将图像转换为十六进制字节数组以将其发送到iOS sdk中的输出流

    我想在蓝牙打印机上打印图像 我从打印机制造商那里得到了一些示例代码 这是代码 unsigned char buffer3 796 0x55 0x66 0x77 0x88 0x44 0x1B 0x58 0x31 0x19 0x20 0x00
  • 使用捆绑包将数据在片段之间传递到另一个片段示例

    我的应用程序中有 3 个 sherlockListFragments 每个片段都有一些 editText 最后一个片段有一个按钮 按下该按钮时 应访问和存储第一个和第二个片段中的所有数据 我使用捆绑包在片段之间发送数据 通过下面这个简单的例
  • @angular/material/index.d.ts' 不是一个模块

    使用 Angular 8 在构建应用程序时 我们遇到以下错误 app modules admin module pages editor editor component ts 6 27 error TS2306 File node mod
  • 浏览器控制台并计算多个javascript执行时间差异

    我可以轻松地做到这一点 console time mytimer doSomeWork console timeEnd mytimer 但是是否可以在多个函数中计算时间 我需要在全局变量中定义脚本的开始时间 然后在多个函数中 我将写下自时间