我有一个处理大量数据的脚本,但是在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/