我可以使用Chrome协议成功地将VS代码调试器连接到我的远程NodeJS目标。我相信相同的协议支持性能分析和性能测量,因为这很容易从Chrome开发工具中完成,但我不确定是否可以直接从VS代码中完成。有没有支持这个功能?我该如何使用它?
ohtdti5x1#
Visual Studio Code 1.45(2020年4月)应该会有所帮助,因为它集成了Javascript调试功能,包括分析:
这个月我们继续在新的JavaScript调试器上取得进展。默认情况下,它安装在Insiders上,并且可以在VS代码稳定中安装from the Marketplace。您可以通过启用**debug.javascript.usePreview**设置,将其与现有启动配置一起使用。以下是本月新增的一些功能:
debug.javascript.usePreview
您可以通过单击“调用堆栈”视图中的新“Profile”按钮或使用**Debug: Take Performance Profile**命令从Node.js或浏览器应用程序捕获CPU配置文件。完成后,您可以选择配置文件运行的时间:直到您将其停止一段时间,或者直到您遇到另一个断点。概要文件结束后,它被保存在工作区文件夹中,并在VS代码中可视化。当您打开配置文件时,代码镜头会添加到您的文件中,这些文件包含函数级别和某些“热”行的性能信息。与许多其他工具捕获的配置文件不同,记录的配置文件是源Map感知的。
Debug: Take Performance Profile
cheesus在注解中提到探查器输出中的行号有问题。因此microsoft/vscode-js-debug问题559:原来这是因为那个位置在一个只存在于编译代码中的函数内部。我们实际上尝试将其源代码Map回原始文件,但是在那个位置没有Map可供使用。
microsoft/vscode-js-debug
如果您将目标更改为es6或更新版本--现在您可以这样做,除非您的目标是Internet Explorer或Node版本〈= 4 -- TS不需要生成这些内容,行号也可以工作。您的代码运行速度也会更快。此调试器仅支持节点8和更高版本。由于这个bug只在针对旧的JavaScript版本时存在,当在为比调试器本身支持的版本更旧的Node版本编译的代码上使用in-place transpilation时,以及修复这个问题所涉及的复杂性,我将把这个问题作为超出范围的问题关闭。
es6
slsn1g292#
据我所知,Chrome的开发工具中没有启动评测或堆转储等的插件/支持,但是VS代码调试器可以与开发工具调试器一起工作。从VS Code开始,按照你的意愿开始调试,然后在Chrome/Chromium浏览器的任意一个选项卡中打开开发工具,寻找绿色图标,指示node.js调试进程正在运行(manually done via node --inspect):
manually done via node --inspect
。单击这个绿色图标,您将看到许多用于调试node.js进程的浏览器开发工具特性,特别是memory和profiler选项卡。
memory
profiler
vmdwslir3#
是的,有很多方法。转到package.json并设置:
package.json
{ \\ other information "scripts": { "debug": "node --inspect-brk" } }
之后,运行use命令:npm run debug yourFile.js也可以在一行node --inspect-brk yourFile.js中执行之后:打开chrome并转到chrome://inspect等待几秒钟,以显示远程目标,然后单击inspect
npm run debug yourFile.js
node --inspect-brk yourFile.js
chrome://inspect
inspect
可以在代码中使用debbuger;来创建断点。要了解更多信息,请访问documentation。在替代方案中,您可以使用VS code'Debugger for Chrome'的插件,并遵循guide。
debbuger;
VS code
yvt65v4c4#
我想这里值得一提的是,你可以使用普通的console.profile和console.profileEnd来评测nodejs应用程序。它会在项目根文件夹中生成.cpuprofile文件,然后你可以用VSCode打开它。
console.profile
console.profileEnd
4条答案
按热度按时间ohtdti5x1#
Visual Studio Code 1.45(2020年4月)应该会有所帮助,因为它集成了Javascript调试功能,包括分析:
新的JavaScript调试器
这个月我们继续在新的JavaScript调试器上取得进展。
默认情况下,它安装在Insiders上,并且可以在VS代码稳定中安装from the Marketplace。
您可以通过启用**
debug.javascript.usePreview
**设置,将其与现有启动配置一起使用。以下是本月新增的一些功能:
分析支持
您可以通过单击“调用堆栈”视图中的新“Profile”按钮或使用**
Debug: Take Performance Profile
**命令从Node.js或浏览器应用程序捕获CPU配置文件。完成后,您可以选择配置文件运行的时间:直到您将其停止一段时间,或者直到您遇到另一个断点。
概要文件结束后,它被保存在工作区文件夹中,并在VS代码中可视化。
当您打开配置文件时,代码镜头会添加到您的文件中,这些文件包含函数级别和某些“热”行的性能信息。
与许多其他工具捕获的配置文件不同,记录的配置文件是源Map感知的。
cheesus在注解中提到探查器输出中的行号有问题。
因此
microsoft/vscode-js-debug
问题559:原来这是因为那个位置在一个只存在于编译代码中的函数内部。
我们实际上尝试将其源代码Map回原始文件,但是在那个位置没有Map可供使用。
如果您将目标更改为
es6
或更新版本--现在您可以这样做,除非您的目标是Internet Explorer或Node版本〈= 4 -- TS不需要生成这些内容,行号也可以工作。您的代码运行速度也会更快。
此调试器仅支持节点8和更高版本。
由于这个bug只在针对旧的JavaScript版本时存在,当在为比调试器本身支持的版本更旧的Node版本编译的代码上使用in-place transpilation时,以及修复这个问题所涉及的复杂性,我将把这个问题作为超出范围的问题关闭。
slsn1g292#
据我所知,Chrome的开发工具中没有启动评测或堆转储等的插件/支持,但是VS代码调试器可以与开发工具调试器一起工作。
从VS Code开始,按照你的意愿开始调试,然后在Chrome/Chromium浏览器的任意一个选项卡中打开开发工具,寻找绿色图标,指示node.js调试进程正在运行(
manually done via node --inspect
):。
单击这个绿色图标,您将看到许多用于调试node.js进程的浏览器开发工具特性,特别是
memory
和profiler
选项卡。vmdwslir3#
是的,有很多方法。
转到
package.json
并设置:之后,运行use命令:
npm run debug yourFile.js
也可以在一行
node --inspect-brk yourFile.js
中执行之后:打开chrome并转到
chrome://inspect
等待几秒钟,以显示远程目标,然后单击
inspect
可以在代码中使用
debbuger;
来创建断点。要了解更多信息,请访问documentation。
在替代方案中,您可以使用
VS code
'Debugger for Chrome'的插件,并遵循guide。yvt65v4c4#
我想这里值得一提的是,你可以使用普通的
console.profile
和console.profileEnd
来评测nodejs应用程序。它会在项目根文件夹中生成.cpuprofile文件,然后你可以用VSCode打开它。