使用-PathType参数指定叶子或容器会对Test-Path cmdlet的效率产生任何影响吗?
更多的是学术问题,因为我无法想象这里的任何收获都是微不足道的。
发布于 2018-02-01 12:02:54
在较高级别上,指定-PathType Leaf会给Test-Path操作增加轻微的开销,因为它必须测试两件事,而不是一件--条目是存在的,而不是容器。
最后,性能影响在很大程度上取决于底层提供者。FileSystem提供程序非常快速地确定现有项是否为容器类型,但不能保证所有提供程序都是这样--这取决于底层数据存储的性质和实现细节。
发布于 2018-02-01 12:21:45
我运行了以下代码:
$result1 = measure-command {
for ($i = 1; $i -lt 101; $i++)
{
test-path C:\windows\temp
}
}然后我跑了:
$result2 = measure-command {
for ($i = 1; $i -lt 101; $i++)
{
test-path C:\windows\temp -PathType leaf
}
}有趣的是,$result1为31毫秒,$result2为36毫秒。添加-pathtype leaf似乎确实增加了开销,但是除非您正在测试大量路径,否则它应该是可以忽略不计的。
https://stackoverflow.com/questions/48562066
复制相似问题