Just a quick reminder for myself.
$FrameworkDir=[Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory() $NGENPath = Join-Path $FrameworkDir 'ngen.exe' [AppDomain]::CurrentDomain.GetAssemblies() | Select-Object -ExpandProperty Location | ForEach-Object { & $NGENPath """$_""" }
Powershell loads and JIT compiles tons, and tons, and tons of stuff. This takes a lot of excessive CPU cycles and disk I/O.
ngen.exe (Native Image Generator) can be used to precompile the assemblies that Powershell loads during startup.
Source:
http://serverfault.com/questions/761301/calling-powershell-exe-is-extremely-slow