簡體   English   中英

對使用 gci 和 -filter 時的性能差異感到好奇

[英]Curious about performance difference when use gci with -filter

請注意以下命令之間的性能差異。 有人知道為什么嗎? 只是好奇。

 PS> gci -r *.txt          # this is slower
 PS> gci -r -filter *.txt  # this is faster

這記錄在-filter參數下。

- Filter

指定篩選器以限定 Path 參數。 FileSystem提供程序是唯一已安裝的支持過濾器的 PowerShell 提供程序。 過濾器比其他參數更有效。 提供程序在 cmdlet 獲取對象時應用過濾器,而不是在檢索對象后讓 PowerShell 過濾這些對象。 過濾器字符串被傳遞到 .NET API 以枚舉文件 API 僅支持 * 和 ? 通配符。

當您在破折號 (-{tab}) 后使用制表符-Path ,建議的第一個參數是-Path ,這就是您的模式被傳遞到的位置。

所以兩個命令是不等價的。 區別應該與-Include-Filter之間的區別相同。 過濾器總是更快,因為它利用文件系統提供程序,而不是僅在檢索文件后進行過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM