使用 --inspect 分析 NodeJS 时,“(程序)”是啥意思

Posted

技术标签:

【中文标题】使用 --inspect 分析 NodeJS 时,“(程序)”是啥意思【英文标题】:When profiling NodeJS using --inspect, what does "(program)" mean使用 --inspect 分析 NodeJS 时,“(程序)”是什么意思 【发布时间】:2017-08-13 06:42:36 【问题描述】:

当使用node --inspect 使用 chrome 开发工具分析 NodeJS 应用程序时,大部分运行时都花费在(program) 中。我没有找到关于这到底意味着什么的信息?只是花时间在 NodeJS 的 C++ 部分吗?

【问题讨论】:

【参考方案1】:

(program) 条目是 Chrome 本身 - 它是第一个在执行其他任何操作之前执行的操作,并且无论您的 Node 应用程序在做什么,它都会保留在那里。

Chromium profiler issue 中讨论了它的确切含义(以及它是否令人困惑)。

您还可以在comments of the Changelog 中看到该提交还包括以下评论:

Web Inspector:[Chromium] 分析器 - 区分原生代码 (程序)和空闲时间https://bugs.webkit.org/show_bug.cgi?id=88446

由 NOBODY 审核(糟糕!)。

现在 idleTime 在配置文件对象中提供。在这个补丁中,idleTime, 如果有,从“(program)”节点中减去,新节点“(idle)”为 作为***节点 ti 配置文件注入。

【讨论】:

Chrome 不涉及这种情况,因为我正在分析 node.js 应用程序。 (空闲)会有意义,但我根本没有看到。在分析 node.js 应用程序时,也许(程序)意味着(空闲)。也许它是节点的 C++ 部分。也许两者兼而有之。我还是不太清楚…… 您正在使用 chrome 开发工具 - Chrome 怎么不参与? 进行分析的是 Chrome 本身 我正在使用 Chrome 来分析一个单独的 node.js 应用程序。如果配置文件中包含 Chrome 的 CPU 周期,这将从根本上被破坏,我无法相信这就是正在发生的事情......

以上是关于使用 --inspect 分析 NodeJS 时,“(程序)”是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

如何 debug nodeJS 代码? how to inspect NodeJS code?

nodejs调试总结

nodeJS 调试debug

如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?

使用 Inspect 检查页面时,Chrome 不显示屏幕的宽度和高度

无法使用 chrome 检查器为 nodejs 拍摄堆快照