powershell - 如何提高Powershell的调试速度

标签 powershell debugging visual-studio-code

我有一个处理大量数据的脚本,但是在powershell shell 中执行时,执行该脚本大约需要1〜2

但是,如果我进入ISE或VSC并设置一个断点,则到达断点需要10至20 分钟的顺序,断点甚至不在脚本结尾处。

是否有逻辑上的解释说明为什么调试时我的性能要比执行时慢1000倍?在ISE / VSC中执行脚本的速度也比仅在Shell中慢。

我可以做的任何配置,我应该注意的事情?因为以这种方式正确调试我的代码确实是行不通的。

最佳答案

实际上,情况甚至更糟。您可以在ISE中打开的脚本中的某个地方放置一个断点,然后转到控制台并使用measure-command检查一些绝对愚蠢的循环。您会看到,它的运行速度比没有断点时要慢得多,尽管此循环与脚本完全无关。
例如。我在Powershell ISE中打开了一个脚本(任何脚本!),并且没有设置断点。然后:
然后,我在ISE的控制台窗口中运行一些命令:

PS C:\WINDOWS\system32> measure-command -Expression {$oDNs | foreach {if ($_ -like '*Reutlingen*') {$_}}}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 56
Ticks             : 563149
TotalDays         : 6,51792824074074E-07
TotalHours        : 1,56430277777778E-05
TotalMinutes      : 0,000938581666666667
TotalSeconds      : 0,0563149
TotalMilliseconds : 56,3149
现在,将断点放在脚本中的某个位置,然后再次运行命令:
PS C:\WINDOWS\system32> measure-command -Expression {$oDNs | foreach {if ($_ -like '*Reutlingen*') {$_}}}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 320
Ticks             : 63206455
TotalDays         : 7,3155619212963E-05
TotalHours        : 0,00175573486111111
TotalMinutes      : 0,105344091666667
TotalSeconds      : 6,3206455
TotalMilliseconds : 6320,6455

关于powershell - 如何提高Powershell的调试速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894920/

相关文章:

powershell - 如何在输入路径时启用自动完成?

powershell - 删除带有特殊字符的文件

flutter - 自从Catalina更新以来,Flutter无法打印/调试打印/记录日志并忽略断点

visual-studio-code - 如何同时换行 - VS Code

visual-studio-code - 获取 "Error: Failed to connect to OmniSharp"

powershell - 如何在powershell中查找当前脚本的位置/路径

python - 使用 Python 的 Paramiko exec_command 使用 PowerShell Start-Process 启动的进程无法正常工作,尽管它在 SSH 终端上工作正常

java - 无法在 Eclipse 中调试条件中的最后一条语句?

apache - 乘客显示系统信息调试错误 – 设计缺陷?

c++ - 通过libstdc++调试