Verbeteringen van de PowerShell-EnginePowerShell Engine Improvements

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

PrestatiesPerformance

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

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

Enkele voorbeeld-verbeteringen (uw resultaten 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 gebouwd: powershell -command "Unknown-Command"Command analysis cache built: powershell -command "Unknown-Command" 70007000 520520
1..1000000 | % { } 14001400 750750

Opmerking één wijziging betrekking hebben op het starten van de mogelijk gevolgen hebben voor een aantal niet-ondersteunde scenario's.Note 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 de verwerking 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 voor ondersteuning van V2 side-by-side, dus als u de inhoud van het bestand wijzigt, heeft deze geen effect op V5, 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. Voorheen werd door 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.