我试图测量一些在PowerShell中写入文件的方法.毫无疑问,但我不明白为什么Measure-Command下面的第一个声明要比第二个声明执行更长的时间.
它们是相同的,但在第二个中我写了一个脚本块发送到Invoke-Command第一个脚本块,我只运行命令.
关于Invoke-Command速度的所有信息我都能找到关于远程处理的信息.
此块大约需要4秒钟:
Measure-Command {
$stream = [System.IO.StreamWriter] "$PSScriptRoot\t.txt"
$i = 0
while ($i -le 1000000) {
$stream.WriteLine("This is the line number: $i")
$i++
}
$stream.Close()
} # takes 4 sec
Run Code Online (Sandbox Code Playgroud)
并且下面的代码完全相同,但是在传递给的脚本块中写入Invoke-Command大约需要1秒钟:
Measure-Command {
$cmdtest = {
$stream = [System.IO.StreamWriter] "$PSScriptRoot\t2.txt"
$i = 0
while ($i -le 1000000) {
$stream.WriteLine("This is the line number: $i")
$i++
}
$stream.Close()
}
Invoke-Command -ScriptBlock $cmdtest
} # Takes 1 second
Run Code Online (Sandbox Code Playgroud)
怎么可能?