Как отключить VsHub.exe в системном трее?

138

Запуск Visual Studio 2015 также запускает два других исполняемых файла:

VsHub.exe

а также

Microsoft.VsHub.Server.HttpHost.exe

Оба они занимают значительное место в диспетчере задач.

Как я могу удалить эту опцию «Visual Studio Hub»? Я не использую никаких первоклассных функций Visual Studio, включая Visual Studio Hub.

Реда Лахдили
источник
15
Я действительно не использую Visual Studio для чего-то другого, кроме редактирования кода. Я использую Unity, а компиляция выполняется встроенным компилятором, поэтому все, что я хочу видеть в VS, - это модный текстовый редактор. Кроме того, я не хочу использовать VS Code, поскольку в нем отсутствует автозаполнение для Unity, и вы не можете создавать свои собственные темы.
Реда Лахдили
2
@RedaLahdili Чем ты закончил? Оба файла работают, даже если я не использую VS2015.
prettyvoid
2
Ваш случай кажется хуже моего! К сожалению, я не нашел решения. Им действительно нужно что-то с этим делать. Иногда VSHub занимает больше памяти, чем сам VS. тьфу ... Держите нас в курсе, ребята, если найдете какое-то решение.
Реда Лахдили
1
Другое решение: stackoverflow.com/questions/31904929/…
oguzh4n
1
Microsoft.VsHub.Server.HttpHostx64.exe имеет утечку памяти, из-за которой мои окна 10 закрываются. См .: connect.microsoft.com/VisualStudio/feedback/details/1610160/…
Olivier Jacot-Descombes,

Ответы:

131

Я подумал, что попытаюсь пролить свет на VS Hub и на то, для чего он предназначен. Я работаю в Microsoft.

Как упоминает sraboy, VS Hub - это сервер внепроцессных сервисов, который Visual Studio (и другие продукты на основе оболочки VS, такие как Blend) используют для поддержки взаимодействия с несколькими инструментами, повышения скорости отклика в devenv (VS) и разрешить определенным службам продлеваться по истечении времени существования процесса нереста. Набор служб, которые в настоящее время размещены в VS Hub, включает в себя многие элементы, упомянутые в других ответах, такие как настройки роуминга, обработка больших массивов данных ETL, которые отображаются в инструментах диагностики, некоторые отчеты телеметрии и автоматическое обновление расширений. и уведомления. Однако этот набор служб, скорее всего, будет расти в будущем, поэтому даже если ни одна из этих служб не кажется необходимой в данный момент, в будущем там будут размещаться дополнительные службы (то есть отключить vshub довольно сложно.

Что касается времени жизни, vshub и хост-процессы (например, Microsoft.VsHub.Server.HttpHost (64) .exe) могут продолжать работать после закрытия devenv.exe. Однако они не должны работать бесконечно. В большинстве случаев эти процессы завершаются в течение ~ 5 минут после последнего закрытия оболочки на основе VS. Итак, если у вас запущен экземпляр VS (devenv.exe) и запущен экземпляр Blend (blend.exe), и вы закрыли devenv.exe, vshub и связанные с ним хост-процессы продолжат работу. Если вы затем закроете blend.exe, vshub и связанный с ним хост-процесс будут по-прежнему работать. Однако примерно через 5 минут после этого эти дополнительные процессы будут закрыты. Если вы запустите другой экземпляр devenv.exe в течение этого 5-минутного окна, vshub и связанные с ним хост-процессы не завершатся,

С точки зрения ресурсов сам процесс vshub.exe всегда должен быть относительно гибким. Если он когда-либо станет большим, то это ошибка, и я хотел бы знать об этом, чтобы мы могли исправить это :-) С другой стороны, хост-процессы могут стать очень большими в зависимости от размещаемой службы. В частности, инструменты диагностики работают, обрабатывая ETL. ETL может быть очень, очень, большим, и поэтому хост может использовать много ресурсов. Группа диагностики ищет способы уменьшить это, но на данный момент закрытие окна средства диагностики, когда оно вам не нужно, должно помочь смягчить проблему.

Что касается онлайн-подключения, в текущем наборе размещенных сервисов на данный момент есть три основных источника (обратите внимание, что со временем это изменится). Во-первых, как упоминает user3345048, в этом процессе запускается служба, которая обнаруживает и автоматически обновляет расширения. Параметры, управляющие этой связью, находятся в Инструменты | Опции | Окружающая среда | Расширения и обновления (см. Первые два флажка). Во-вторых, настройки роуминга работают как служба в VS Hub. Параметр, управляющий этим поведением, находится в Инструменты | Опции | Окружающая среда | Синхронизированные настройки (или, в более широком смысле, если вы не входите в учетную запись персонализации в верхнем правом углу VS). Наконец, VS Hub сообщает телеметрию. Объем этих данных можно значительно уменьшить с помощьюПомощь | Варианты обратной связи с клиентами | Пункт меню Настройки… . Вы также можете прочитать о типах телеметрии, которые собирает Microsoft, и о том, как они используются в этом месте.

Энсон Хортон
источник
40
Энсон. У меня Visual Studio 2015 с RTM-версией 1 в Windows 7. Если я открываю Fiddler4, я вижу сотни или больше вызовов в секунду на localhost / vshub / sameGuidHereOverAndOver. Это совершенно неприемлемо - я не знаю, что думает vshost.exe, но он полностью сошел с ума. Я могу убить процесс, но это все равно происходит. Возможно, придется вернуться в 2013 год ...
Марио
4
@Mario - как вы видели, vshub часто действует как локальный http-сервер, поэтому ожидается, что вы увидите некоторый трафик, когда он будет запущен (http действует как IPC). 100 запросов в секунду в течение любого длительного периода времени - определенно ошибка. Вы можете проверить журналы в% temp% \ VsHub, которые должны указывать, возникают ли какие-либо исключения, и, очевидно, вы уже выяснили, как проверять трафик. Лучше всего было бы сообщить об этом как о проблеме через connect.microsoft.com, поскольку это даст нам канал для сбора журналов и тому подобного и попытается исправить это,
Ансон Хортон,
28
Вот Microsoft.VsHub.Server.HttpHost64.exe, который "гибок" на моей машине - imgur.com/DKvSNqf - это 1 ГБ ОЗУ, на котором он достиг максимума. Ницца.
sh1rts 01
7
@ sh1rts - я понимаю ваше разочарование. "Гибкий" комментарий, который я сделал выше, был нацелен на vshub.exe. Microsoft.VsHub.Server.HttpHost64.exe - это хост-процесс, который запускает различные службы, в том числе некоторые из них, которые могут потреблять очень много памяти (например, инструменты диагностики, которые запускаются, когда вы используете F5, или если вы явно выбираете анализ памяти или отклика пользовательского интерфейса. ). Вы можете попробовать некоторые из переключателей, о которых я упоминал выше, чтобы отключить некоторые из этих служб, чтобы посмотреть, помогает ли это, но в целом мы будем работать над уменьшением общих накладных расходов на память в будущих версиях.
Энсон Хортон
17
Так как же перестать видеть сотни запросов / vshub / GUID в Fiddler. Это делает невозможным отладку любого HTTP-клиента в Visual Studio, потому что на каждом этапе отладки я вижу 10+ запросов в скрипте, и интересующий меня запрос теряется :-(. Кроме того, это серьезно неэффективный способ межпроцессного взаимодействия связь для выполнения HTTP-запросов на localhost.
onny
82

То, что никто не упомянул выше ...

Согласно моему журналу брандмауэра, VsHub.exe, Microsoft.VsHub.Server.HttpHost.exe и Microsoft.VsHub.Server.HttpHostx64.exe все пытаются общаться в сети .

Адреса, с которыми я видел попытки исходящего подключения, включали 191.236.194.164 (Microsoft Azure, Wichita Kansas) и 23.102.160.172 (Microsoft Azure, Redmond Washington).

Я понимаю, что «современное» программное обеспечение должно быть интегрировано в облако, но ...

Как человек, который ничего не требует от серверов Microsoft Azure и который на законных основаниях озабочен конфиденциальностью и не допускает утечки какой-либо части того, над чем я работаю, во внешний мир, я бы очень хотел, чтобы A) имел способ не для запуска этих программ, или B) иметь настройки, ограничивающие их общение в сети. Да, брандмауэр блокирует соединения, но это последнее средство.

Было бы неплохо установить простой флажок «[] Связаться с серверами Microsoft Azure». Означает ли это, что эти программы не запускаются, или они просто не устанавливают онлайн-соединения, для меня не имеет значения. Я полагаю, что с точки зрения ресурсов первое было бы лучше, поскольку потребовало бы меньше ресурсов.

Как правило, я бы не предлагал изменять файлы в наборе файлов установленного приложения, но поскольку у меня есть среда виртуальной машины, в которой я могу без особых последствий тестировать изменения в Visual Studio 2015 (снимки прекрасны), я попытался изменить разрешения (чтобы удалить наследование, а затем запретить чтение и выполнение для пользователей) для этих трех файлов.

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

Visual Studio подходит. Я не вижу здесь обратной стороны.

-Ноэль

NoelC
источник
Обратная сторона: вы сами больше не можете изменять эти файлы.
harrymc 05
Не уверен, что ты имеешь в виду, Гаррим. Не могли бы вы быть более конкретными? Вы говорите о проблемах с доступом к разрешениям? Как администратор, вы по-прежнему управляете каждым файлом на своем компьютере, хотя Microsoft иногда бросает вам в глаза гаечные ключи. Но если вы понимаете, как работают разрешения, вы можете делать все, что захотите. В конце концов, файлы находятся на ВАШЕМ компьютере. Если вы имеете в виду, что удалили свои собственные разрешения, я сформулировал это плохо. Я имел в виду, что Я УДАЛЕНИЕ разрешений, а не добавил настройку Запретить. Я должен был использовать слово «запретить».
NoelC
После установки запрета для повторного доступа к разрешениям необходимо сначала установить себя как владельца файлов.
harrymc
Правильно. НЕ устанавливайте флажок в столбце «Запретить». Вместо этого СНИМИТЕ ПРОВЕРКУ «Прочитать и выполнить» в столбце Разрешить.
NoelC
2
Судя по моему опыту после обновления 3, достаточно просто изменить разрешения на vshub.exe для удаления доступа на выполнение.
NoelC
61

Я использую Windows 7 x64 с Visual Studio Express 2015. Я завершил раздражающие процессы с помощью диспетчера задач. Затем я удалил папку C: \ Program Files (x86) \ Common Files \ microsoft shared \ VsHub . Эта операция решает проблему, но требует прав администратора.

xakepp35
источник
38
Голосуйте за меня, потому что команде DevTools действительно нужно прекратить постоянно запускать всю эту надоедливую чушь в фоновом режиме. Также следуя совету удалить папку VsHub, потому что MS не даст мне чистый способ удалить эту хрень.
jerhewet
2
У меня это сработало, я удалил эту папку, и VsHub больше не запускается в диспетчере задач. Хотя я не буду отмечать это как решение этого вопроса, я уверен, что есть более чистый способ отключить VsHub.
Реда Лахдили
18
Нашел более лояльное решение. Вместо удаления переименуйте папку VsHub в _VsHub . У этого есть преимущество отката назад, если вы действительно напуганы :)
xakepp35 02
4
Во время отладки не работают диагностические инструменты, отображающие в реальном времени использование процессора и памяти процессом.
Фредерик,
4
У меня возникли проблемы с VsHub и HttpHostx64, когда я пытался изменить старый файл конструктора linq на sql в старом проекте. После открытия конструктора VS зависает и не отвечает. Procmon продемонстрировал большую активность HttpHostx64.exe. Я переименовал папку c: \ Program Files (x86) \ Common Files \ Microsoft Shared \ VsHub \ в «VsHub (фигня)». Мой конструктор linq-to-sql теперь загружается как обычно. :)
Ник
30

Как упоминалось в xakepp35, вы можете удалить папку C: \ Program Files (x86) \ Common Files \ microsoft shared \ VsHub . Однако я подозреваю, что обновления или другие установщики, вероятно, попытаются воссоздать его.

Что я сделал, так это остановил все процессы VS. Станьте владельцем папки (как администратор), затем RAR (ZIP) вверх по папке и, наконец, удалите ее (RAR в качестве резервной копии, если мне нужны файлы обратно). У меня SSD, поэтому я хочу сэкономить место. В противном случае вы можете просто переименовать его и оставить на месте.

Затем, чтобы предотвратить его повторное создание, я использовал старый трюк с Win 3.1. Создайте текстовый файл с именем VsHub.txt в общей папке C: \ Program Files (x86) \ Common Files \ microsoft . Затем переименуйте текстовый файл и удалите расширение .txt, оставив файл с именем VsHub . Поскольку ОС не может создать папку и файл с тем же именем в одном месте, пуф, он недоступен как папка для VS и его недоступные и будущие установщики / программы обновления также как папка. Затем, если вам нужно снова разрешить доступ в будущем, просто добавьте .txt обратно в файл, и вперед.

Вольфи
источник
8
Это предложенное решение отлично сработало для меня. Это устранило поток запросов vshub в Fiddler, и общая производительность VS существенно улучшилась. Microsoft, если вы читаете: меньше значит больше - раздутое ПО - это худшее, что вы можете допустить с программным обеспечением для повышения производительности.
Шон
Чтобы убедиться, что никто не догадывается об удалении этого файла, чтобы разрешить создание каталога, вы можете добавить к нему ACL из вкладки, щелкнув правой кнопкой мыши / свойства / безопасность, которая не делает ничего, кроме запрета всем удалять права доступа к файлу. .
dgnuff
Я последовал этому совету и получил невероятную скорость. Мой компьютер восприимчив к дисковой очереди, что иногда означает, что заставка Visual Studio отображается в течение 5 минут (без преувеличения). Большое спасибо за это.
S Meaden
22

Похоже, что это коммуникационный швейцарский армейский нож для визуальной студии в соответствии с ответом @ sraboy. Он используется во время отладки для отображения информации о производительности запущенного процесса, а также для отправки телеметрии в Microsoft о проекте, над которым вы работаете. Вы можете создавать и выполнять код нормально, даже если он отключен (на первый взгляд).

Удаление, переименование или блокировка создания процесса vshub с помощью AV нарушит упомянутую мной трассировку производительности. Потеря vshub улучшает конфиденциальность при использовании Visual Studio, поскольку он взаимодействует с vortex.data.microsoft.com, передавая информацию, такую ​​как GUID решения и проекта, вместе с идентификатором вашей учетной записи. Ниже приведен снимок экрана, на котором скрипач перехватывает данные HTTPS.

Блокирование доступа на уровне сети помогает обеспечить конфиденциальность, но не решает проблему использования ресурсов. Я бы рассмотрел последнее как обычные накладные расходы при запуске Visual Studio.

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

Данные, переданные в Microsoft через vshub

Фредерик
источник
8

Для тех из вас, кто хочет сохранить VSHub и по-прежнему иметь возможность использовать Fiddler, вы можете настроить фильтр в Fiddler со следующими настройками:

Request Headers > Hide if URL contains =
REGEX:localhost:\d+\/vshub\/

РЕДАКТИРОВАТЬ - вы, вероятно, тоже захотите добавить это:

Hosts > Show only the following Hosts: =
localhost;

чтобы опустить и vortex.data.microsoft.comт.д .. запросы

фильтр vshub в Fiddler

Илан
источник
4

По словам менеджера программ Microsoft, комментирующего блог Visual Studio, комментируя блог Visual Studio , он используется для поддержки взаимодействия с несколькими инструментами в пакете VS. Учитывая, насколько сложна Visual Studio, я бы не рекомендовал ничего более сурового, чем ответ xakepp35 (его удаление).

На моем Win10 x64 с запущенным VS2015 во время отладки есть три процесса, а общее использование ОЗУ составляет менее 150 МБ. Если вы не перебираете страницы на машине с минимальным объемом оперативной памяти, об этом не стоит беспокоиться. Учитывая, что вы используете VS2015, я предполагаю, что у вас есть 150 МБ свободного места.

Я бы рекомендовал оставить это до тех пор, пока вы не найдете документацию, явно показывающую, что поддерживает хаб, или пока не найдете. По моему опыту, установку Visual Studio слишком легко сломать.

срабой
источник
3
На моей машине после дня работы эта программа занимает 580МБ. Даже после того, как я закрыл VS2015, эта программа не останавливается. Я думаю, что это довольно много оперативной памяти для программы, которая поддерживает функции (облако, udpates), которые я не использую.
0xBADF00D
Это также, похоже, зависит от размера вашего решения.
Эд ДеГан,
1
Что ж, проблема в том, что он просто неограниченно растет. Я только вчера установил 2015, а сегодня утром нужно было исследовать тайну с 7 ГБ. Просто глупо. Отключенные средства диагностики.
Ник Вестгейт,
3

Одной из причин, по которой Visual Studio пытается подключиться к Интернету, также кажется, что по умолчанию выполняется поиск обновлений в Интернете как для Visual Studio, так и для ее расширений.

Кроме того, Visual Studio включает в себя версию Internet Explorer в своем ядре, так что веб-страницу (и расширение) можно загружать в реальном времени. Другими словами, он также действует как браузер, и, как мы все знаем ... Microsoft очень заинтересована в проверке данных своих пользователей и использовании своего программного обеспечения.

В меню ИнструментыПараметры есть множество онлайн-функций . (Честно говоря, я предпочитаю MonoDevelop даже с его недостатками.)

user3345048
источник
2
Я недавно перешел на Sublime Text, не могу угнаться за VS, замедляющим мою машину.
Реда Лахдили
1
Мы собираемся преобразовать все наши веб-службы на основе .NET в Java, потому что инструменты Microsoft просто ужасны.
Crush
2

Это необходимо для BrowserLink, окна диагностики, Intellitrace.

Мне иногда нужны эти функции, но у меня всего 8 ГБ ОЗУ. Обычно я использую 90-95%, поэтому я создал командный файл для включения и выключения VSHub, переименовав папку и создав символическую ссылку на пустую папку с фиктивными файлами.

Выключите Visual Studio перед запуском.

@echo off
goto CheckVsHubRunning

:KillVsHub
    echo Killing VsHub Process
    taskkill /IM VsHub.exe /T /F
    TIMEOUT /T 3 /NOBREAK
:CheckVsHubRunning
    ver > nul
    tasklist /FI "IMAGENAME eq VsHub.exe" | find /I /N "VsHub.exe"
    if "%ERRORLEVEL%"=="0" goto KillVsHub
    if "%ERRORLEVEL%"=="1" echo VsHub is not running.
    echo.

PUSHD "C:\Program Files (x86)\Common Files\microsoft shared"
    IF NOT EXIST "VsHub.original" (
        echo Renaming Original VsHub folder.
        RENAME "VsHub" "VsHub.original"
    )
    IF NOT EXIST "VsHub.dummy" (
        echo Creating Dummy Folder and Contents
        mkdir       "VsHub.dummy"
        copy NUL >  "VsHub.dummy\1.0.0.0"
        copy NUL >  "VsHub.dummy\ServiceModules"
        mkdir       "VsHub.dummy\dummy"
    )

    IF EXIST "VsHub\dummy" (
        echo ENABLING VsHub
        echo.
        rmdir       VsHub
        mklink /d   VsHub   VsHub.original

    ) ELSE (
        echo DISABLING VsHub
        echo.
        rmdir       VsHub
        mklink /d   VsHub   VsHub.dummy
    )
echo.
pause

На моей машине VSHub и его друзья обычно используют:

  • VsHub.exe: изначально 50 МБ. 250-350 МБ через 2+ часа
  • Microsoft.VsHub.Server.HttpHost.exe: изначально 200 МБ. 350 + МБ через 1+ часа
  • Microsoft.VsHub.Server.HttpHostx64.exe: изначально 320 МБ. 550 + МБ через 1+ часа

Это освобождает более 1 ГБ оперативной памяти без потери функциональности.

Дерек Зиемба
источник
0

«VsHub» следует переименовать в «SmartMobileCloud»; вот насколько это глупо, Модно. Я бросил это; мое редактирование / отладка VisualC не пострадали.

После установки VisualStudio удалите неиспользуемые расширения, выполните исправление "C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ - Deleted - VsHub" ... и поместите туда текстовый файл "VsHub" (без ".TXT" ), поэтому ничто не может воссоздать папку.

Джефф Релф
источник