Всем привет, недавно столкнулся с проблемой - рабочий ноутбук начал непривычно шуметь системой охлаждения. В диспетчере задач наблюдал следующую картину:

Никаких других окон, кроме пустого проекта открыто не было. На 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 | Sort-Object -Property CPU -Descending | Select-Object -Skip 1 -First 1
  if($secondMostConsumingProcess.Name -eq "Code")
  {
    Stop-Process -Id $vsCodeProcess.Id  -Force
  Write-Host $vsCodeProcess.Name "Successfully stopped"
  }
}

Сначала я рассчитывал, что всегда на вершине сортированного списка процессов по потреблению ЦПУ будет именно 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 мне не помог.

upd: код PowerShell скрипта поправил, не все строчки скопировал из файла сначала

Комментарии (54)


  1. Butaforsky Автор
    24.11.2023 14:04
    +1

    Снес vs code

    Поставил AWS Toolkit, C/C++, Embedded IDE, Error Lens, One Dark Pro, Python, Pylance, Rainbow CSV и GitLense, в простое ничего не грузит ЦПУ, спасибо всем неравнодушным


  1. alexdora
    24.11.2023 14:04
    +7

    Из статьи я понял что Vscode работает на окнах хуже чем на яблоке.

    Осталось понять только, что это за магия такая с учетом того что vscode - microsoft


    1. edogs
      24.11.2023 14:04
      +2

      Так он вроде на Electron написан, т.е. платформо-независим изначально. Зенд студию помнится, написанный на ява, тоже неадекватно тормозил на виндах.
      Был бы он на плюсах написан, допустим, можно было бы озадачиться.


    1. Sigest
      24.11.2023 14:04

      У меня вчера на маке vscode завис после пробуждения ноутбука из гибернации (не обычный сон, а глубже). Завис так, что пришлось перезагружать ноут. Не сворачивался, не убивался из таск менеджера. Просто висел на весь экран с крутящимся спинером-указателем. И это я в первый раз перезагружаю ноут из-за какого-либо приложения. Хотя я уже привык к поделиям MS. На десктопе Windows 11 и там каждый день какие-то проблемы, в основном с Explorer.


      1. alexdora
        24.11.2023 14:04
        +2

        terminal:

        ps aux | grep -i Code | awk '{print $2}' | xargs sudo kill -9

        Бывали такие выпады в разных приложениях, всегда спасало. Уж не знаю почему Task Manager плохо понимает команду Завершить принудительно


      1. Yami-no-Ryuu
        24.11.2023 14:04

        Есть Process Monitor же. Перезагружать то зачем.


    1. WQS100
      24.11.2023 14:04
      +1

      Осталось понять только, что это за магия такая с учетом того что vscode - microsoft

      У них в разных материалах (на их видео и трансляциях, да и банально в гифках в новостях, связанных с обновлениями) mac версия, по субъективным ощущениям, встречается чаще, чем другие, так что возможно они просто сами на маках работают, и поэтому она там лучше отлажена :)


      1. 13werwolf13
        24.11.2023 14:04
        +1

        разработчики из microsoft юзают маки, разработчики из apple юзают linux, линуксоиды контрибьютят в *bsd.. однажды круг замкнётся ????????????


        1. 13werwolf13
          24.11.2023 14:04

          UPD: подумалось - если натянуть сову на глобус и сказать что macos это bsd то в целом круг замкнулся и оставил некрософт за границой своего уютного мирка..


    1. MiyuHogosha
      24.11.2023 14:04

      на яблоке низя маркетплейс )


  1. Vitimbo
    24.11.2023 14:04
    +4

    Решил проверить, много ли потребляет vs у меня, но такой картины не наблюдаю. Жрет прилично, только если сборку проекта запустить, но это уже не совсем вина vscode, там процесс nodejs разгулялся. А какие параметры у ноута?

    Hidden text


    1. Butaforsky Автор
      24.11.2023 14:04
      +1

      Ryzen 5 4600H, 16GB оперативки, ssd штатный, производителя не помню, m2 формата


  1. e-zig
    24.11.2023 14:04
    +1

    Периодически в Винде такая проблема у меня возникала и сама не исчезала. Помогал полный снос vs code с ручной чисткой папок с его расширениями. Где то есть офф. гайд как это сделать. Я думал, что мне так не везёт, ан нет, распространённая проблема. На линуксе такого не замечал.


  1. Z55
    24.11.2023 14:04
    +7

    У меня, на маке, расширение для питона отъедало 100% цпу (одного). Поискал решение, и не нашёл ничего кроме перехода в PyCharm. Теперь вскод у меня просто в роли умного блокнота.


    1. keneshin
      24.11.2023 14:04

      Если это Pylance, то не удивительно. В VSC вообще проблема с анализаторами кода, независимо от платформы (с rust-analyzer точно так же, помогает только переход в CLion/RustRover)


      1. Butaforsky Автор
        24.11.2023 14:04
        +1

        Pylance подключен, попробую, как без него работать будет, спасибо

        Но вообще перед тем как сносить Marketplace, запускал vs code с флагом —no-extensions (spelling модет быть неправильным, суть понятна) и просто «ванильный» vs code работал так же


        1. MiyuHogosha
          24.11.2023 14:04
          +1

          Вы отключили расширения. А это не отключает расширения... это отключает клиент который постоянно ходит к вебсервису.

          Рассчитано на пользователей с гигабитным интернетом и без APN\фильтров РКН


      1. Z55
        24.11.2023 14:04
        +1

        К сожалению (а может и к счастью), уже не скажу какое именно использовал расширение. Какое-то из топа. Давно это было... И да, скорее всего чудил анализатор кода, ибо нагрузка была постоянной и стабильной.


    1. andrey_27
      24.11.2023 14:04
      -1

      вскод только в роли умного блокнота и годится)


  1. me21
    24.11.2023 14:04
    +4

    Маркетплейс никогда процессор не отъедал. Что было, это загрузка процессора clangd при построении модели кода для работы code completion. Может работать несколько минут. Проект - прошивка для чипа STM. Обычно случается при изменении списка подключаемых заголовков в одном из исходников.


  1. Akuma
    24.11.2023 14:04
    +10

    Попробуйте ее просто с чистого листа поставить, это какая-то нездоровая фигня. В простое оно вообще не должно ничего потреблять - ничего и не происходит.


  1. Polarisru
    24.11.2023 14:04
    +7

    Текстовый редактор, который мы заслужили - жуткие тормоза и перегретый процессор для того, чтобы просто редактировать код.


    1. Airtrain
      24.11.2023 14:04
      +1

      >Текстовый редактор, который мы заслужили

      IDE это не текстовый редактор. Хотя, конечно, позорище, сам с поделкой от intellij страдаю. Но возвращаться в настоящий "текстовый редактор" это конечно дауншифтинг лютый.


    1. sdramare
      24.11.2023 14:04

      VS Code это IDE и тормозит в ней совсем не модуль редактирования текста. Скажу невероятное, но даже в vim могут быть плагины, имеющие высокое потребление CPU.


      1. Polarisru
        24.11.2023 14:04
        -1

        Ну вот только не надо мне рассказывать про то, что VSCode ни в чем не виноват. Почему-то в CodeBlocks подсветка синтаксиса работает так, как она должна работать - мгновенно. А вот в банальном Си без всяких наворотов под VSCode она подсвечивает так, что я это вижу невооруженным глазом, причем без всяких там компиляций в фоне. Про остальные фишки можно просто и не вспоминать, более тормозной среды я себе представить не могу, даже дериваты эклипса работают куда более шустро, а уж на них я насмотрелся достаточно, учитывая, что почти каждый производитель микроконтроллеров уже имеет свою.


  1. SergeySavkin
    24.11.2023 14:04
    +1

    Я тоже раньше пользовался EIDE, но недавно KEIL выпустил Keil Studio for VS Code

    Перешел на него и пока доволен. Под IAR тоже есть свой плагин.


    1. Butaforsky Автор
      24.11.2023 14:04

      Да, keil studio тоже видел, но поставить не получилось - спустя час статус установки не поменялся. Возможно из РФ блокирует, но это очень не точно


      1. webhamster
        24.11.2023 14:04
        +1

        Из РФ невозможно открыть https://www.keil.arm.com


  1. webhamster
    24.11.2023 14:04
    +1

    Это решение Windows-only? Или на Linux тоже будет работать?


    1. Butaforsky Автор
      24.11.2023 14:04
      +1

      Подозреваю, что скрипт powershell на Linux не запустится



      1. Kenya-West
        24.11.2023 14:04

        Вполне себе запускается


  1. HOMPAIN
    24.11.2023 14:04
    +1

    Почему вы в винде используете vscode, а не полноценную студию? Для каких-то задач она подходит лучше?


    1. IgorAlentyev
      24.11.2023 14:04
      +1

      Ну я например пишу в vscode на js, питоне и пхп. Студия норм для шарпов и плюсов, для всего остального имхо лучше другие решения использовать


    1. ekungurov
      24.11.2023 14:04
      +1

      Да, для каких-то задач она подходит лучше.


    1. Butaforsky Автор
      24.11.2023 14:04

      Потому что когда-то студия была «тяжелее» для освоения, сейчас скорее дело привычки


    1. BAD_F00D
      24.11.2023 14:04
      +1

      Для любого проекта не на дотнете?
      Ну. Вот допустим - я извращенец, который на расте или го любит писать в свободное время. В чем еще писать-то на винде, чтобы не страдать?


      1. 13werwolf13
        24.11.2023 14:04
        -1

        RustRover непример (ну и прочее ЖИДбрейнсовское), оно конечно будет дико жрать озу, но оно на жабе писано, так что можно считать что это не баг а фича, а по удобству ИМХО жидбрейнсовские поделия на голову выше этого электроноподобного позора от майков. правда мне до сих пор не понятно зачем выпускать одно и то же IDE с разным набором плагинов под видом разных продуктов.. но что поделать.


        1. sdramare
          24.11.2023 14:04

          Вот только VS Code бесплатный, а jb продукты довольно ощутимые по цене. Ладно для работы, но платить пару сотен евро для написания кода в пет проекте не каждый захочет.


          1. 13werwolf13
            24.11.2023 14:04

            ай, кто ищет тот найдёт
            если принципиально нужно бесплатное IDE всегда можно взять например qt-creator и прикрутить к нему rust, да, это уже будет не так круто и функционально как jb, но зато не будет насиловать мозг и железо

            ну а для особых естетов есть плагинпаки для nvim превращающие его из текстового редактора в полноценное IDE функционалу которого позовидует даже vscode

            да и jb при некоторых условиях можно использовать, и платить за хороший продукт тоже не зазорно..


            1. sdramare
              24.11.2023 14:04

              neovim это для особых людей("я не такой как все"), которые готовы год собирать свой конфиг плагинов чтобы получить хоть что-то похожее на IDE. Можно конечно брать готовый пак типа LunarVim, но это всеравно даже близко не так удобно как нажать две кнопки в VS Code и получить готовую к работе среду.


              1. 13werwolf13
                24.11.2023 14:04

                нажать две кнопки вот тут не так удобно как нажать две кнопки вот там

                хмм, вам не кажется что вы НЕ безпрестрасны?

                не подумайте, я сам не из vimбоев, предпочитаю гуёвые IDE и текстовые редакторы, но я имел удовольствие работать с теми кто в основном использует vim/nvim и могу вам сказать что они бы поспорили с вами как про удобство, так и про функционал и производительность.

                к тому же что касается vscode в сравнении хотя бы с pycharm то нажав две кнопки есть ненулевой шанс не получить готовую к работе среду а обрушить его до неработоспособности..


    1. 1dNDN
      24.11.2023 14:04

      Полноценная студия с решарпером лагает даже на моем 5800x3d.

      Поэтому для всего, что не требует специфичных фич студии, я юзаю Rider


  1. wmlab
    24.11.2023 14:04
    +1

    vscode ощутимо тормозит по сравнению с текстовыми редакторами. Особенно это заметно, когда на слабой виртуалке работаешь.


    1. sdramare
      24.11.2023 14:04

      Текстовыми редакторами без LSP плагинов?


  1. stephanthe
    24.11.2023 14:04
    +4

    Это, видимо, ненормально. У меня все включено и потребление <1%


    1. Daimos
      24.11.2023 14:04
      +1

      Да так похоже у большинства, у ТС какой-то плагин виноват, который трудно выловить


  1. Butaforsky Автор
    24.11.2023 14:04
    +1

    Снес vs code

    Поставил AWS Toolkit, C/C++, Embedded IDE, Error Lens, One Dark Pro, Python, Pylance, Rainbow CSV и GitLense, в простое ничего не грузит ЦПУ, спасибо всем неравнодушным


  1. BadGuySol
    24.11.2023 14:04
    +1

    Срабатывает не с первого раза очевидно потому, что в момент запуска скрипта первый по загрузке ресурсов не тот что нужен. Если вы знаете имя процесса, то зачем нужна эта проверка по потреблению ресурсов? Просто ищите нужный процесс и при его наличии - завершайте


    1. Butaforsky Автор
      24.11.2023 14:04
      +1

      У vs code процессов несколько и все с одинаковыми именами. Чтобы не сломать то, что работает, сделал сначала сортировку по потреблению ресурсов


      1. BadGuySol
        24.11.2023 14:04
        +1

        Даже у процессов с одинаковыми именами есть уникальные параметры. В данном случае рекомендую обратить внимание на параметр CommandLine. На его основе можно будет определить назначение процесса, либо просто ориентируясь по набору фиксированных значений этого параметра, завершать процесс


  1. 13werwolf13
    24.11.2023 14:04
    +6

    Но ведь это не по‑программистски каждый раз в Диспетчер задач залезать, открывать дерево процессов, останавливать Marketplace, ведь так?

    простите мне моё ИМХО, но "по‑программистски" было бы не писать скрипт на убийство дочернего процесса важной для работы программы, а разобраться в его поведении и прислать в апстрим MR с исправлением.

    но есть и другое мнение - просто нужно перестать насиловать свою ОС и нервы юзая софт на электроне.. никогда электроноподелия не сравнятся с нативным софтом.


    1. Wendor
      24.11.2023 14:04
      +1

      VS Code пример хорошего приложения на electron. Кроме шуток.


      1. 13werwolf13
        24.11.2023 14:04
        -1

        лучшая кучка говна из множества кучек говна всё ещё остаётся кучкой говна

        я согласен что вскод лучшее что смогли сделать на электроне, но это мало что меняет


    1. andreishe
      24.11.2023 14:04

      Да черт с ним, с исправлением, соберите данные хотя бы: ETW trace, дамп памяти и дайте их разработчикам.