JavaScript 使用每个语句的结果进行分析

JavaScript profiling with per-statement results

我有一个高度递归的 JavaScript 函数,它不调用其他 JavaScript 函数。它只是一个调用自身执行一些简单逻辑并调用系统函数(Array.sliceArray.spliceArray.push 等)的函数。

我正在尝试对其进行优化,但是 Chrome 和 Firefox(该网站运行的唯一浏览器)DevTools 和 Firebug 的分析器没有显示任何更具体的信息比函数调用。 Visual Studio 有一个好处,在对应用程序进行分析后,它会告诉您在函数的每一行上花费了多少执行百分比,这非常有用。

我曾尝试将函数分解为更小的函数,但随后函数调用开销膨胀,占用了我的大部分执行时间。

Firebug 和 DevTools 的分析器为您提供有关每个函数花费了多少时间的详细信息。请参阅以下屏幕截图:

Firebug自己的时间列)

Firefox DevToolsSelf Time 列)

Chrome DevToolsSelf 列)

Firefox DevTools 还允许您通过在 Performance 面板选项中启用 Show Gecko Platform Data 选项来包含平台数据:

尽管这些工具仅显示每个函数的数据。它们不允许您显示每行,或者更准确地说,每条语句的信息,可能是因为这是 JavaScript 作者无法直接影响的内容。

如果您认为此信息可能与 JavaScript 作者相关,您应该为每个工具提交请求以实现此功能并解释其背后的原因。

Intel XDK 提供了您需要的信息。这是 Inbtel XDK 分析工具的 link:https://software.intel.com/en-us/xdk/docs/using-the-profile-tab 有几张图片和帮助如何使用它。

我们正在收集配置文件并通过自身时间指标对源视图进行注释。

目前我们正在 Android 设备上执行此操作,但计划将 GUI 迁移到 CDT 及其上游。但即使在上游之前,此功能也将在名为 Crosswalk 的浏览器中的 Windows 和 Linux 平台上可用。 Crosswalk 是一款基于 chromium 的浏览器,包含 SIMD.js 或 WebCL.js

等有前途的功能

关于收集信息的更多世界。英特尔 XDK JavaScript CPU 探查器仅按自身时间注释源,但我们正在努力添加总时间 - 某行花费了多少时间以及该行的所有被调用函数。

对于 运行 的分析,您需要下载 XDK,创建新项目并将代码添加到其中。然后切换到“配置文件”选项卡,通过电线插入设备,select CPU profiler 如果没有 selected,然后按“配置文件”按钮。等待您的使用反馈。