Снижаем потребление CPU в VS Code в 5 раз [Кратко]
Всем привет, недавно столкнулся с проблемой — рабочий ноутбук начал непривычно шуметь системой охлаждения. В диспетчере задач наблюдал следующую картину:
Никаких других окон, кроме пустого проекта открыто не было. На StackOverflow, было предложено запустить без расширений и посмотреть потребление (идентичное в моём случае), отключить автообновление расширений, но мне эти способы не помогли.
В какой — то момент решил сыграть в «Дженгу» — остановить процесс, нагружающий компьютер и посмотреть, что «отвалится»
Внезапно — на первый взгляд ничего: ни тема не слетела, ни проекты на EIDE не перестали компилироваться, все работало штатно, даже отладчик Cortex-Debuger
Но не работает Marketplace
Он не отображает список установленных Расширений (они всегда в 0) и не позволяет их отключать/подключать
Но зато ЦПУ загружен на 10 — 12% в режиме простоя, кулеры сами по себе перестали работать спустя 30 секунд
Но ведь это не по-программистски каждый раз в Диспетчер задач залезать, открывать дерево процессов, останавливать Marketplace, ведь так?
Нужен скрипт, который можно добавить в tasks.json
$vsCodeProcess = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 1
if($vsCodeProcess.Name -eq "Code")
{
Stop-Process -Id $vsCodeProcess.Id -Force
Write-Host $vsCodeProcess.Name "Successfully stopped"
}
else{
Write-Host "No Code to stop"
$secondMostConsumingProcess = Get-Process
Сначала я рассчитывал, что всегда на вершине сортированного списка процессов по потреблению ЦПУ будет именно VS Code, но так было не всегда, поэтому добавил проверку по имени приложения и повторный поиск
Осталось запустить скрипт. В tasks.json добавляем следующее, предварительно создав в папке файл «taskkill.ps1» в моем случае
{
"label": "Run PowerShell Script",
"type": "shell",
"command": "powershell.exe",
"args": ["-File", "${workspaceFolder}/taskkill.ps1"],
"group": {
"kind": "build",
"isDefault": true
}
}
Теперь, когда task создана, ее можно вызвать через Ctrl + Shift + P
Рис 2. Ищем нашу задачу
После нажатия «Enter» находим нашу задачу и вызываем ее
С первого раза не всегда работает, пока не очень понимаю, почему
Попытка номер 2:
Результаты:
Диспетчер задач после выполнения скрипта
Диспетчер задач теперь отображает наиболее грузящими процессор служебные задачи
Потеря Marketplace
Marketplace недоступен, но расширения работают (Тема OneDark Pro не слетела, проект в EIDE компилируется, шьется в микроконтроллер и работает Cortex-Debug)
Работа идет
Всем спасибо, что дочитали до конца, прошу поделиться, как можно улучшить данный способ, например, сделать запуск скрипта автоматическим при запуске VS Code, параметр «onStartup»: «Run PowerShell Script» в tasks.json мне не помог