향상된 PowerShell 엔진PowerShell Engine Improvements

WMF 5.1에서는 핵심 PowerShell 엔진에 대한 다음과 같은 개선 사항이 구현되었습니다.The following improvements to the core PowerShell engine have been implemented in WMF 5.1:

성능Performance

몇 가지 중요한 영역에서 성능이 향상되었습니다.Performance has improved in some important areas:

  • 시작Startup
  • ForEach-ObjectWhere-Object와 같은 cmdlet에 대한 파이프라이닝이 약 50% 더 빠릅니다.Pipelining to cmdlets like ForEach-Object and Where-Object is approximately 50% faster

몇 가지 예제 개선 사항(하드웨어에 따라 결과가 달라질 수 있음):Some example improvements (your results may vary depending on your hardware):

시나리오Scenario 5.0 시간(밀리초)5.0 Time (ms) 5.1 시간(밀리초)5.1 Time (ms)
powershell -command "echo 1" 900900 250250
처음 PowerShell 실행: powershell -command "Unknown-Command"First ever PowerShell run: powershell -command "Unknown-Command" 3000030000 1300013000
빌드된 명령 분석 캐시: powershell -command "Unknown-Command"Command analysis cache built: powershell -command "Unknown-Command" 70007000 520520
1..1000000 | % { } 14001400 750750

참고

시작과 관련된 한 가지 변경이 몇 가지 지원되지 않는 시나리오에 영향을 줄 수 있습니다.One change related to startup might impact some unsupported scenarios. PowerShell은 더 이상 $pshome\*.ps1xml 파일을 읽지 않습니다. XML 파일 처리의 일부 파일 및 CPU 오버헤드를 방지하기 위해 이러한 파일이 C#으로 변환되었습니다.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. 이러한 파일은 V2를 나란히 지원하기 위해 여전이 있으므로 파일 콘텐츠를 변경하는 경우 V5에는 아무 영향이 없고 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. 이러한 파일의 콘텐츠를 변경하는 시나리오는 지원되지 않았습니다.Note that changing the contents of these files was never a supported scenario.

또 하나의 뚜렷한 변경 사항은 PowerShell이 시스템에 설치된 모듈에 대해 내보낸 명령 및 기타 정보를 캐시하는 방법입니다.Another visible change is how PowerShell caches the exported commands and other information for modules that are installed on a system. 이전에는 이 캐시가 $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\CommandAnalysis 디렉터리에 저장되었습니다.Previously, this cache was stored in the directory $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\CommandAnalysis. WMF 5.1에서 이 캐시는 단일 파일 $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\ModuleAnalysisCache입니다.In WMF 5.1, the cache is a single file $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\ModuleAnalysisCache. 자세한 내용은 모듈 분석 캐시를 참조하세요.See Module Analysis Cache for more details.