Время запуска PowerShell.exe

Как известно PowerShell 1.0 стартует не очень шустро. Разумеется какое то время уходит на непосредственный запуск оболочки, а затем на выполнение команд из профиля. Мне было интересно замерить эти значения, и в результате получилось вот что:

MeasureProfile

Для замера времени выполнения профиля, я поставил в самом начале следующие строки:

$Watch = new-object System.Diagnostics.Stopwatch
$Watch.Start()

Иначе говоря поместил в переменную $Watch объект .Net Stopwatch, специально предназначенный для замера времени выполнения некоего кода. Этакий секундомер. Затем с помощью метода .Start() запускаем его, и помещаем дальше остальной код профиля. Ну и самыми последними строками:

$Watch.Stop()
Write-Host "Время загрузки профиля: $($Watch.Elapsed)"

Короче говоря останавливаем секундомер, и выводим на экран затраченное время.

Можно было реализовать то же самое с помощью командлета Get-Date и временной переменной:

$StartTime = Get-Date
<...код профиля...>
Write-Host "Время загрузки профиля: $((Get-Date) - $StartTime)"

Вычислить время собственно запуска PowerShell.exe оказалось тоже не слишком сложно🙂 Достаточно знать что в специальной переменной $Pid хранится id текущего процесса PowerShell, и что у процессов есть свойство StartTime😉

Write-Verbose "Общее время загрузки: $((get-date) - (Get-Process -id $pid).StartTime)"

Кстати, если у вас PowerShell запускается совсем уж медленно, то возможно вы столкнулись с ошибкой инсталлятора «забывшего» выполнить «оптимизацию» после установки. Эта проблема исправляется вот этим скриптом.

Опубликовано в Learn, PowerShell, Scripting, Tips. 2 комментария »

комментария 2 to “Время запуска PowerShell.exe”

  1. Oleg Medvedev Says:

    Слово «привелегия» — это в powershell версии 2 встроено или у вас в профиле прописано?
    Оно пишется пока ещё как «привилегия».

  2. Xaegr Says:

    Олег, это моя врожденная неграмотность разумеется🙂 Спасибо, поправил, картинку позже обновлю🙂 Локализация 2.0 пока не началась насколько мне известно.


Обсуждение закрыто.

%d такие блоггеры, как: