Я использую приложение GitHub для Windows. В последнее время я заметил, что запуск консоли PowerShell из приложения GitHub занимает много времени. После некоторых копаний я обнаружил, что медленная команда устанавливает переменную окружения. Более конкретно эти строки в GitUtils.ps1 (часть PoshGit, который использует GitHub):
function setenv($key, $value) {
[void][Environment]::SetEnvironmentVariable($key, $value, [EnvironmentVariableTarget]::Process)
[void][Environment]::SetEnvironmentVariable($key, $value, [EnvironmentVariableTarget]::User)
}
Установка переменной для всего процесса выполняется мгновенно, но переменная User занимает много времени. Используя следующий скрипт:
$sw = [Diagnostics.Stopwatch]::StartNew()
[Environment]::SetEnvironmentVariable("Horses", "are neat", [EnvironmentVariableTarget]::User)
$sw.Stop()
$sw.Elapsed
Я вижу, что эта операция занимает более 80 секунд. Настройка User env var с помощью окна расширенных настроек по умолчанию выполняется быстро. Используя Rapid Environment Editor, установка переменной обычно быстрая, но иногда занимает 5-10 секунд, но никогда ничего такого длинного.
У кого-нибудь есть предложения, что может быть причиной этого?