Verbeteringen van de PowerShell-EnginePowerShell Engine Improvements

De volgende verbeteringen aangebracht in de engine van de PowerShell core in WMF 5.1 geïmplementeerd:The following improvements to the core PowerShell engine have been implemented in WMF 5.1:

PrestatiesPerformance

Prestaties zijn verbeterd in enkele belangrijke gebieden:Performance has improved in some important areas:

  • OpstartenStartup
  • Pipelining voor cmdlets, zoals ForEach-Object en Where-Object ongeveer 50% snellerPipelining to cmdlets like ForEach-Object and Where-Object is approximately 50% faster

Aantal voorbeeld verbeteringen (uw resultaat kunnen variëren, afhankelijk van uw hardware):Some example improvements (your results may vary depending on your hardware):

ScenarioScenario 5.0-tijd (ms)5.0 Time (ms) 5.1-tijd (ms)5.1 Time (ms)
powershell -command "echo 1" 900900 250250
Eerste ooit PowerShell uitvoeren: powershell -command "Unknown-Command"First ever PowerShell run: powershell -command "Unknown-Command" 3000030000 1300013000
Opdracht analysis-cache is gemaakt: powershell -command "Unknown-Command"Command analysis cache built: powershell -command "Unknown-Command" 70007000 520520
1..1000000 | % { } 14001400 750750

Notitie

Een wijziging met betrekking tot opstarten mogelijk gevolgen hebben voor enkele niet-ondersteunde scenario's.One change related to startup might impact some unsupported scenarios. De bestanden niet meer worden gelezen door PowerShell $pshome\*.ps1xml --deze bestanden zijn geconverteerd naar C# om te voorkomen dat een bestand en CPU-overhead van het verwerken van de XML-bestanden.PowerShell no longer reads the files $pshome\*.ps1xml -- these files have been converted to C# to avoid some file and CPU overhead of processing the XML files. De bestanden nog steeds aanwezig ondersteuning V2 side-by-side, dus als u de inhoud van het bestand wijzigt, heeft het geen effect op versie 5, alleen V2.The files still exist to support V2 side-by-side, so if you change the file contents, it will not have any effect to V5, only V2. Houd er rekening mee dat de inhoud van deze bestanden wijzigen nooit een ondersteund scenario is.Note that changing the contents of these files was never a supported scenario.

Een andere zichtbare wijzigingen is hoe PowerShell slaat de geëxporteerde opdrachten en andere informatie voor modules die zijn geïnstalleerd op een systeem.Another visible change is how PowerShell caches the exported commands and other information for modules that are installed on a system. Eerder deze cache is opgeslagen in de map $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\CommandAnalysis.Previously, this cache was stored in the directory $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\CommandAnalysis. In WMF 5.1, de cache is een enkel bestand $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\ModuleAnalysisCache.In WMF 5.1, the cache is a single file $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\ModuleAnalysisCache. Zie Module Analysis Cache voor meer informatie.See Module Analysis Cache for more details.