IE调试网页之七:使用探查器工具分析代码性能 (Windows)

简介:

  F12 开发人员工具提供了内置脚本探查器,你可以利用它分析在 Windows Internet Explorer 9 中运行的 JavaScript 代码的性能。本主题介绍此工具的功能以及如何使用它检查脚本的性能。

  分析脚本

  要开始操作,请在 Internet Explorer 9 中打开你要分析的页面。在 Internet Explorer 9 中,按 F12 以打开 F12 工具,然后单击“探查器”选项卡。

  探查器让你能够开始和停止分析,并提供了一些有关函数、函数的运行次数以及每个函数运行的时间的视图或报告。

  当你第一次单击“探查器”选项卡时,网格是空的。单击“开始分析”按钮,然后运行你要在浏览器中分析的代码。如果你要从网页的初次加载开始,请单击“刷新”以运行页面上的代码。在需要停止收集数据并查看结果时,单击“停止分析”。 要只分析某个代码部分,请单击“开始分析”,仅在浏览器中运行相应的代码部分(如从某个按钮单击调用的某个函数),然后单击“停止分析”。

  查看分析报告

  单击“停止分析”时,会从探查器工具自动生成报告。每个探查器会话都是一个独立的报告,因此,你可以运行任意次数的分析(例如,针对脚本的多个部分)或修改值,以及再次分析相同部分。默认情况下仅显示最新的探查器报告,但你可以单击“当前报告”下拉列表来查看其他报告。

  可以通过函数视图或调用树视图这两种方法查看报告。“函数”视图按照函数运行顺序显示所有函数。“调用树”视图显示函数的层次结构,以便你可以更轻松地查看父项和子项的关系。

F12 工具的包含函数视图的分析选项卡的屏幕截图

  分析数据类型

  探查器最多从分析中返回 12 列数据。在报告中,你可以右键单击列的顶部,然后添加或删除列。 下表显示了可用的数据。

列标题 显示的内容
函数 正在分析的函数的名称。
计数 调用此函数的总次数。
包含时间(毫秒) 在此函数中经过的运行时间长度。其中包括从此函数调用的子函数或外部函数中花费的时间。
包含时间百分比 在此函数中经过的运行时间百分比。其中包括从此函数调用的子函数或外部函数中花费的时间。
排除时间(毫秒) 在此函数中经过的运行时间长度。其中排除从此函数调用的子函数或外部函数中花费的时间。
排除时间百分比 在此函数中经过的运行时间百分比。其中排除从此函数调用的子函数或外部函数中花费的时间。
平均时间(毫秒) 在此函数及其子函数和外部函数中花费的平均时间。
最大时间(毫秒) 在此函数及其子函数和外部函数中花费的最大时间。
最小时间(毫秒) 在此函数及其子函数和外部函数中花费的最小时间。
函数类型 函数的类型 - DOM、用户、内置。
URL 定义此函数的源文件的 URL。
行号 此函数的开头在源代码中的行号。

  包含时间和排除时间会给出有关代码中的问题的一些迹象。包含时间提供了此函数、由其调用的或其子函数调用的任何函数的总体时间。排除时间仅显示在特定函数内实际花费的时间。有可能一个函数的包含时间非常高,而排除时间很少。例如:

function bar() {
// do some work for a 250 milliseconds
}

function foo() {
// do some work for 200 milliseconds and then call bar()
bar();
}

function main() {
//do some work for 50 milliseconds then call foo()
foo();
}

  在此示例中,首先调用 "main()" 函数(工作时间为 50 毫秒),然后调用 "foo()"(花费 200 毫秒),然后调用 "bar()"(在完成之前工作 250 毫秒)。下面的图表演示了包含时间和排除时间可能显示的值。

函数 包含时间 排除时间
main() 500 毫秒 50 毫秒
foo() 450 毫秒 200 毫秒
bar() 250 毫秒 250 毫秒

  每个函数的包含时间是运行该函数花费的时间加上运行它后面的函数(子函数)花费的所有时间。排除时间仅仅是运行当前函数花费的时间。函数链中的最后一个函数 "bar()" 显示的包含时间和排除时间是相同的。

  搜索报告和报告排序

  你可以使用 F12 工具右上角的“搜索”框在报告中搜索特定函数。在“搜索”框中键入全部或部分名称,然后单击“搜索”按钮或按 Enter。将突出显示搜索关键字的所有实例,并且报告会滚动到第一个匹配项。通过按 Enter 或 Shift + Enter,或单击“下一个”或“上一个”结果按钮,可在匹配项之间导航。

F12 工具搜索的“下一个”按钮和“上一个”按钮的图片

  在“调用树”视图中搜索时,匹配的函数上方的所有父函数都会展开。

  单击任意可见列的标题以按该数据进行排序。再次单击标题可切换升序和降序。还可在“探查器”选项卡中右键单击数据区域,单击“排序方式”,然后选择所需的列。

  在“调用树”报告视图中排序时,仅对顶级函数的值进行排序。子函数仍保留其层次结构顺序。

  复制和保存报告

  通过选择行并按 Ctrl+C,或通过右键单击并单击“复制”,可复制探查器报告中的所有或部分信息。要选择所有行,请按Ctrl + A,然后按 Ctrl+C

  要直接导出到一个逗号分隔 (.csv) 文件,请单击“导出”图标(在“开始分析”按钮旁边。)导出函数将保存所有行(包括标题),而复制和粘贴仅包括选中的行,而不包括标题。



本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
15天前
自动生成IE浏览器的xpath工具IEXPath
自动生成IE浏览器的xpath工具IEXPath
22 0
|
2月前
|
Windows
www.1188.com劫持IE,baidu工具条不甘落后
www.1188.com劫持IE,baidu工具条不甘落后
|
2月前
|
Windows
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
|
3月前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
2月前
|
Linux 开发者 Python
从Windows到Linux,Python系统调用如何让代码飞翔🚀
【9月更文挑战第10天】在编程领域,跨越不同操作系统的障碍是常见挑战。Python凭借其“编写一次,到处运行”的理念,显著简化了这一过程。通过os、subprocess、shutil等标准库模块,Python提供了统一的接口,自动处理底层差异,使代码在Windows和Linux上无缝运行。例如,`open`函数在不同系统中以相同方式操作文件,而`subprocess`模块则能一致地执行系统命令。此外,第三方库如psutil进一步增强了跨平台能力,使开发者能够轻松编写高效且易维护的代码。借助Python的强大系统调用功能,跨平台编程变得简单高效。
35 0
|
3月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
157 0
|
3月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
173 0
|
3月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
52 0
|
3月前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
56 0