/
githubmirror
/
PowerShell
Обзор
Документация
Войти
/
githubmirror
/
PowerShell
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tools/performance/Invoke-PerfviewPS.ps1
37 строк
1 KB
Dongbo Wang
Clean up the use of 'SetProfileRoot' and 'StartProfile' in ConsoleHost (#9931)
19 июн 2019, 09:34
19 июн 2019, 09:34
94b6b6f
Код
Авторство
О чём код?
#requires -RunAsAdministrator param( $ETLFileName = '.\PerfViewData.etl', [Parameter(Mandatory)] [scriptblock] $ScriptBlock, $LogFileName = '.\perfview.log', $PowerShellPath = $(Get-Command -Name pwsh.exe).Source, $PerfViewPath = $(Get-Command -Name PerfView.exe).Source ) $EncodedScriptBlock = [System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes($ScriptBlock.ToString())) $perfViewArgs = @( '/AcceptEula' '/ThreadTime' "/LogFile=$LogFileName" "/DataFile:$ETLFileName" '/noRundown' '/Merge' '/Zip:False' # GCSampledObjectAllocationHigh is sometimes useful, but quite expensive so not included by default # '/ClrEvents=default+GCSampledObjectAllocationHigh' '/Providers:*Microsoft-PowerShell-Runspaces,*Microsoft-PowerShell-CommandDiscovery,*Microsoft-PowerShell-Parser,*Microsoft.Windows.PowerShell' 'run' """$PowerShellPath""" '-NoProfile' '-EncodedCommand' $EncodedScriptBlock ) $process = Start-Process -FilePath $PerfViewPath -ArgumentList $perfViewArgs -PassThru $process.WaitForExit() Get-Content $LogFileName | Out-Host