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

Mag*_*gix 8 javascript performance profiling visual-studio node.js

我可以使用Chrome协议将VS Code调试器成功连接到我的远程NodeJS目标.我相信同样的协议支持分析和性能测量,因为Chrome Dev Tools很容易做到,但我不确定这是我可以从VS Code做的事情.

这个功能有什么支持吗?我怎么用呢?

Von*_*onC 16

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

新的 JavaScript 调试器

本月,我们继续在新的 JavaScript 调试器上取得进展。
它默认安装在 Insiders 上,并且可以VS Code Stable 中的 Marketplace安装。

您可以通过启用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 版本编译的代码上使用就地转换时,以及修复此问题所涉及的复杂性,我将关闭此问题作为范围外。


ada*_*hts 9

我不知道有什么插件/支持可用于启动Chrome的Dev Tools中可用的分析或堆转储等.但是,VS Code调试器可以与dev工具调试器一起工作.

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

在此输入图像描述.

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


Aym*_*men 7

是的,有很多方法。

转到package.json并设置:

  { 
    \\ other information 

    "scripts": {
      "debug": "node --inspect-brk" 
    } 
  }
Run Code Online (Sandbox Code Playgroud)

之后,运行use命令: npm run debug yourFile.js

或者您可以单行执行 node --inspect-brk yourFile.js

之后:打开chrome并转到 chrome://inspect

等待几秒钟,出现一个远程目标并单击 inspect

在此处输入图片说明

您可以debbuger;在代码中使用一个断点。

要了解更多信息,请参阅文档

另外,您可以使用VS code “ Chrome调试器”插件,然后按照指南进行操作