Снижаем потребление 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. Ищем нашу задачу
Рис 2. Ищем нашу задачу

После нажатия "Enter" находим нашу задачу и вызываем ее

С первого раза не всегда работает, пока не очень понимаю, почему
С первого раза не всегда работает, пока не очень понимаю, почему

Попытка номер 2:

Результаты:

Диспетчер задач после выполнения скрипта
Диспетчер задач после выполнения скрипта

Диспетчер задач теперь отображает наиболее грузящими процессор служебные задачи

Потеря Marketplace
Потеря Marketplace

Marketplace недоступен, но расширения работают (Тема OneDark Pro не слетела, проект в EIDE компилируется, шьется в микроконтроллер и работает Cortex-Debug)

Работа идет
Работа идет

Всем спасибо, что дочитали до конца, прошу поделиться, как можно улучшить данный способ, например, сделать запуск скрипта автоматическим при запуске VS Code, параметр "onStartup": "Run PowerShell Script" в tasks.json мне не помог

Источник: https://habr.com/ru/articles/776062/


Интересные статьи

Интересные статьи

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью на английском о том, как добавить Flutter в новый или существующий проект Native iOS. Реши...
Набирая It-специалистов для решения разного рода задач, компании или департаменты стараются брать от middle и выше, казалось бы, это удобно. Вот придёт такой человек в компанию, рассказали о структуре...
Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы ра...
Цветовая гармония является одним из столпов согласованности элементов пользовательского интерфейса, что необходимо как при создании собственного проекта, так и в работе над приложениями для клиентов в...
Со временем этот пост можно будет читать в двух разных настроениях. Если придёт новый карантин — вспоминать, как успели вдохнуть свежего воздуха офлайна. Если не придёт —...