我可以使用 Visual Studio Code 分析 NodeJS 应用程序吗?

新手上路,请多包涵

我可以使用 Chrome 协议将 VS Code 调试器成功连接到我的远程 NodeJS 目标。我相信相同的协议支持分析和性能测量,因为它很容易从 Chrome 开发工具中完成,但我不确定这是我可以直接从 VS Code 中完成的事情。

是否支持此功能?我该如何使用它?

原文由 Magix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 307
2 个回答

Visual Studio Code 1.45(2020 年 4 月)应该有所帮助,因为它集成了 Javascript 调试功能,包括分析:

新的 JavaScript 调试器

本月我们在新的 JavaScript 调试器上继续取得进展。

它默认安装在 Insiders 上,并且可以 从 VS Code Stable 中的市场 安装。

您可以通过启用 debug.javascript.usePreview 设置,开始将它与现有的启动配置一起使用。

以下是本月添加的一些新功能:

分析支持

您可以通过单击“调用堆栈”视图中新的“配置文件”按钮或使用 Debug: Take Performance Profile 命令从 Node.js 或浏览器应用程序捕获 CPU 配置文件。

完成后,您可以选择配置文件将运行多长时间:直到您停止它、持续一段时间或直到您遇到另一个断点。

配置文件结束后,它会保存在您的工作区文件夹中并在 VS Code 中可视化。

当您打开配置文件时,代码镜头将添加到您的文件中,其中包含功能级别和某些“热”行的性能信息。

与许多其他工具中捕获的配置文件不同,记录的配置文件是源地图感知的。

JS 调试分析


cheesus 在评论 中提到分析器输出中的行号有问题。

因此 microsoft/vscode-js-debug 问题 559

事实证明这是因为该位置位于仅存在于编译代码中的函数内。

我们实际上确实尝试将其源映射回原始文件,但在该位置没有映射可供使用。

https://camo.githubusercontent.com/24b6e6f18cade2b5c8a621ded5241dc752896d00/68747470733a2f2f6d656d65732e706565742e696f2f696d672f32302d30372d38376265353862372d343530622d346334322d613233302d3266306532376336356234322e706e67

如果您将目标更改为 es6 或更新版本,您现在可以这样做,除非您的目标是 Internet Explorer 或 Node 版本 <= 4 – TS 不需要生成这些内容并且行号有效。

您的代码也会运行得更快。这是最新的映射

此调试器仅支持 Node 8 及更高版本。

由于此错误仅在针对旧的 JavaScript 版本时在针对比调试器本身支持的旧版本的 Node 编译的代码上使用就地转译时存在,并且修复此问题所涉及的复杂性,我将关闭此问题作为超出范围。

原文由 VonC 发布,翻译遵循 CC BY-SA 4.0 许可协议

据我所知,没有用于启动 Chrome 开发工具中可用的分析或堆转储等的插件/支持。但是,VS 代码调试器可以与开发工具调试器一起工作。

从 VS Code 开始,然后像您一样开始调试。然后从 Chrome/Chromium 浏览器中的任何选项卡打开开发工具,并查找指示 node.js 调试进程正在运行的绿色图标( manually done via node --inspect ):

在此处输入图像描述 .

单击这个绿色图标,您将拥有许多用于调试 node.js 进程的浏览器开发工具功能,特别是 memoryprofiler 选项卡。

原文由 adamrights 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题