Speed up Resolve-Path relative path resolution#19171
Speed up Resolve-Path relative path resolution#19171iSazonov merged 2 commits intoPowerShell:masterfrom
Conversation
|
This pull request has been automatically marked as Review Needed because it has been there has not been any activity for 7 days. |
|
I watched it several times and each time I came back to the idea that it was too tricky for such a limited scenario. It would be much more useful to improve NormalizeRelativePath itself - in implementation and/or on API level. |
|
This pull request has been automatically marked as Review Needed because it has been there has not been any activity for 7 days. |
src/Microsoft.PowerShell.Commands.Management/commands/management/ResolvePathCommand.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.PowerShell.Commands.Management/commands/management/ResolvePathCommand.cs
Outdated
Show resolved
Hide resolved
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
src/Microsoft.PowerShell.Commands.Management/commands/management/ResolvePathCommand.cs
Show resolved
Hide resolved
|
🎉 Handy links: |
PR Summary
Improves the performance of Resolve-Path relative when resolving multiple paths in the same directory, for example when using it like this:
Resolve-Path -Path C:\Windows\System32\* -RelativeThis is done by saving the resolved base path and reusing it every time a new item in the same directory is encountered.
On my system
Measure-Command -Expression {Resolve-Path -Path C:\Windows\System32\* -Relative}takes 1 second and 200 ms on average without this fix, and around 90ms with this fix.PR Context
PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright headerWIP:or[ WIP ]to the beginning of the title (theWIPbot will keep its status check atPendingwhile the prefix is present) and remove the prefix when the PR is ready.(which runs in a different PS Host).