使用 -PathType 参数如何影响测试路径的效率



使用 -PathType 参数指定叶或容器是否对Test-Path cmdlet 的效率有任何影响?

更多的是一个学术问题,因为我无法想象这里的任何收益都是可以忽略不计的。

在高级别上,指定-PathType Leaf会稍微增加Test-Path操作的开销,因为它必须测试 2 件事而不是一件事 - 项目存在并且它不是容器。

最后,性能影响在很大程度上取决于基础提供程序。FileSystem提供程序可以非常快速地确定现有项是否为容器类型,但不能保证所有提供程序都是这种情况 - 它归结为基础数据存储和实现细节的性质

我运行了以下代码:

$result1 = measure-command {
    for ($i = 1; $i -lt 101; $i++)
    { 
         test-path C:windowstemp     
    }
}

然后我跑了:

$result2 = measure-command {
    for ($i = 1; $i -lt 101; $i++)
    { 
         test-path C:windowstemp -PathType leaf      
    }
}

有趣的是,$result1是 31 毫秒,而$result2是 36 毫秒。 似乎添加-pathtype leaf确实会增加开销,但除非您正在测试大量路径,否则它应该可以忽略不计。

相关内容

  • 没有找到相关文章

最新更新