Comment désactiver VsHub.exe dans la barre d'état système?

138

Le démarrage de Visual Studio 2015 lance également deux autres exécutables:

VsHub.exe

et

Microsoft.VsHub.Server.HttpHost.exe

Ces deux éléments occupent une place considérable dans le gestionnaire de tâches.

Comment puis-je supprimer cette option «Visual Studio Hub»? Je n'utilise aucune des fonctionnalités de premier ordre de Visual Studio, y compris celle de Visual Studio Hub.

Reda Lahdili
la source
15
Eh bien, je n'utilise vraiment pas Visual Studio pour autre chose que l'édition de code. J'utilise Unity et la compilation est effectuée par le compilateur intégré, donc tout ce que je veux voir dans VS est un éditeur de texte sophistiqué. De plus, je ne veux pas utiliser VS Code car il manque l'auto-complétion pour Unity et vous ne pouvez pas créer vos propres thèmes personnalisés.
Reda Lahdili
2
@RedaLahdili Qu'as-tu fini par faire? Les deux fichiers fonctionnent même lorsque je n'exécute pas VS2015.
prettyvoid
2
Votre cas semble pire que le mien! Je n'ai malheureusement trouvé aucune solution. Ils doivent vraiment faire quelque chose à ce sujet. Parfois, VSHub prend plus de mémoire que VS lui-même. uggh ... Tenez-nous au courant les gars si vous trouvez une solution.
Reda Lahdili
1
Une autre solution est: stackoverflow.com/questions/31904929/…
oguzh4n
1
Microsoft.VsHub.Server.HttpHostx64.exe a une fuite de mémoire qui provoque l'arrêt de Windows 10. Voir: connect.microsoft.com/VisualStudio/feedback/details/1610160/…
Olivier Jacot-Descombes

Réponses:

131

J'ai pensé essayer de faire la lumière sur le VS Hub et à quoi il est destiné. Je travaille pour Microsoft.

Comme le mentionne sraboy, VS Hub est un hôte de services hors processus que Visual Studio (et d'autres produits basés sur le shell VS tels que Blend) utilise pour prendre en charge la communication multi-outils, une meilleure réactivité au sein de devenv (VS), et permettre à certains services de s'étendre au-delà de la durée de vie du processus de reproduction. L'ensemble des services actuellement hébergés dans VS Hub comprend de nombreux éléments mentionnés dans les autres réponses, tels que les paramètres d'itinérance, le traitement de larges pans de données ETL qui sont rendus dans les outils de diagnostic, certains rapports de télémétrie et la mise à jour automatique de l'extension. et notifications. Cet ensemble de services est cependant très susceptible de croître à l'avenir, donc même si aucun de ces services ne semble nécessaire pour le moment, des services supplémentaires y seront hébergés à l'avenir (c'est-à-dire que c'est un gros marteau de désactiver le vshub.

En termes de durée de vie, les processus vshub et hôte (c'est-à-dire Microsoft.VsHub.Server.HttpHost (64) .exe) peuvent continuer à fonctionner après la fermeture de devenv.exe. Cependant, ils ne doivent pas continuer à fonctionner indéfiniment. Dans la plupart des cas, ces processus se termineront dans les ~ 5 minutes suivant la dernière instance de fermeture d'un shell basé sur VS. Donc, si vous avez une instance de VS en cours d'exécution (devenv.exe) et une instance de Blend en cours d'exécution (blend.exe) et que vous arrêtez devenv.exe, vshub et les processus hôtes associés continueront de fonctionner. Si vous arrêtez ensuite blend.exe, vshub et le processus hôte associé seront toujours en cours d'exécution. Cependant, après environ 5 minutes, ces processus supplémentaires s'arrêteront. Si vous démarrez une autre instance de devenv.exe dans cette fenêtre de 5 minutes, vshub et les processus hôtes associés ne se termineront pas,

En termes de ressources, le processus vshub.exe lui-même doit toujours être relativement souple. Si jamais il devient gros, alors c'est un bogue et j'aimerais le savoir pour que nous puissions le corriger :-) Les processus hôtes, en revanche, peuvent devenir très volumineux en fonction du service hébergé. En particulier, l'outillage de diagnostic fonctionne en traitant ETL. ETL peut être très, très, grand, et en tant que tel, l'hôte peut utiliser beaucoup de ressources. L'équipe de diagnostic cherche des moyens de réduire cela, mais pour le moment, la fermeture de la fenêtre de l'outil de diagnostic lorsque vous n'en avez pas besoin devrait aider à atténuer le problème.

En termes de connectivité en ligne, il existe actuellement trois sources principales dans l'ensemble actuel de services hébergés (notez que cela changera avec le temps). Tout d'abord, comme le mentionne user3345048, le service qui détecte et met à jour automatiquement les extensions s'exécute dans ce processus. Les options qui contrôlent cette communication se trouvent dans Outils | Options | Environnement | Extensions et mises à jour (voir les deux premières cases à cocher). Deuxièmement, les paramètres d'itinérance s'exécutent en tant que service dans VS Hub. Le paramètre qui contrôle ce comportement se trouve dans Outils | Options | Environnement | Paramètres synchronisés (ou de manière plus globale, si vous ne vous connectez pas au compte de personnalisation dans le coin supérieur droit de VS). Enfin, VS Hub rapporte la télémétrie. Le volume de ces données peut être considérablement réduit grâce auAide | Options de commentaires des clients | Élément de menu Paramètres… . Vous pouvez également en savoir plus sur le type de télémétrie que Microsoft collecte et sur la manière dont elle est utilisée à cet emplacement.

Anson Horton
la source
40
Anson - J'ai Visual Studio 2015 avec la version RTM 1 sur Windows 7. Si j'ouvre Fiddler4, je vois des centaines d'appels ou plus par seconde vers localhost / vshub / sameGuidHereOverAndOver. C'est complètement inacceptable - je ne sais pas ce que pense vshost.exe, mais il est complètement devenu fou. Je peux tuer le processus et ça continue. Il faudra peut-être revenir en 2013 ...
Mario
4
@Mario - comme vous l'avez vu, vshub agit souvent comme un serveur http local, donc on s'attend à ce que vous voyiez du trafic à chaque fois qu'il est en cours d'exécution (http agit comme IPC). Des centaines de requêtes par seconde pendant une période prolongée sont définitivement un bogue. Vous pouvez vérifier les journaux dans% temp% \ VsHub, ce qui devrait indiquer s'il y a des exceptions levées, et vous avez évidemment déjà compris comment inspecter le trafic. La meilleure chose à faire serait de signaler cela comme un problème via connect.microsoft.com car cela nous donnera un canal pour collecter les journaux et autres et essayer de nous assurer qu'il est corrigé
Anson Horton
28
Voici Microsoft.VsHub.Server.HttpHost64.exe étant "agile" sur ma machine - imgur.com/DKvSNqf - c'est 1 Go de RAM, il a atteint son maximum. Agréable.
sh1rts
7
@ sh1rts - Je comprends votre frustration. Le commentaire «agile» que j'ai fait ci-dessus visait vshub.exe. Microsoft.VsHub.Server.HttpHost64.exe est le processus hôte qui exécute divers services, y compris certains qui peuvent être très gourmands en mémoire (par exemple, l'outil de diagnostic qui démarre lorsque vous utilisez F5, ou si vous choisissez explicitement de faire une analyse de la réactivité de la mémoire ou de l'interface utilisateur) ). Vous pouvez essayer certaines des bascules que j'ai mentionnées ci-dessus pour désactiver certains de ces services et voir si cela aide - mais généralement, nous travaillerons pour réduire la charge mémoire globale dans les versions futures.
Anson Horton
17
Alors, quel est le moyen d'arrêter de voir des centaines de requêtes / vshub / GUID dans Fiddler. Cela rend impossible le débogage de tout client HTTP dans Visual Studio, car pour chaque étape du débogage, je vois plus de 10 requêtes dans Fiddler et la requête qui m'intéresse est perdue :-(. En plus, c'est une manière sérieusement inefficace d'inter-processus communication pour faire des requêtes HTTP sur localhost.
Đonny
82

Quelque chose que personne n'a mentionné ci-dessus ...

D'après mon journal de pare-feu, VsHub.exe, Microsoft.VsHub.Server.HttpHost.exe et Microsoft.VsHub.Server.HttpHostx64.exe essaient tous de communiquer en ligne .

Les adresses auxquelles j'ai vu des tentatives de connexion sortantes incluaient 191.236.194.164 (Microsoft Azure, Wichita Kansas) et 23.102.160.172 (Microsoft Azure, Redmond Washington).

Je réalise que les logiciels «modernes» sont censés être intégrés au cloud, mais ...

En tant que personne qui n'a besoin de rien des serveurs Microsoft Azure, et qui est légitimement préoccupée par la confidentialité et ne divulgue aucune partie de ce sur quoi je travaille au monde extérieur, j'aimerais vraiment que A) ait un moyen de choisir de ne pas pour exécuter ces programmes, ou B) disposer de paramètres pour limiter leur conversation en ligne. Oui, le pare-feu bloque les connexions, mais c'est un dernier recours.

Une simple case à cocher, "[] Contacter les serveurs Microsoft Azure" serait bien. Que cela signifierait ne pas exécuter les programmes en question ou simplement les empêcher d'établir les connexions en ligne n'a pas d'importance pour moi. Je suppose que du point de vue des ressources, le premier serait meilleur car il utiliserait moins de ressources.

En règle générale, je ne proposerais pas de modifier les fichiers dans la suite de fichiers d'une application installée, mais comme j'ai un environnement de machine virtuelle dans lequel je peux tester les modifications apportées à Visual Studio 2015 sans trop de conséquences (les instantanés sont merveilleux), j'ai essayé de modifier les autorisations (pour supprimer l'héritage puis interdire la lecture et l'exécution pour les utilisateurs) sur ces trois fichiers.

Voila, plus d'applications VsHub en cours d'exécution, essayant de contacter des systèmes distants.

Visual Studio arrive tout de suite. Je ne vois pas d'inconvénient ici.

-Noël

NoelC
la source
Inconvénient: vous ne pouvez plus modifier vous-même ces fichiers.
harrymc
Je ne sais pas ce que tu veux dire, harrymc. Pouvez-vous être plus précis? Parlez-vous de problèmes d'accès aux autorisations? En tant qu'administrateur, vous maîtrisez toujours tous les fichiers de votre ordinateur, bien que Microsoft jette parfois des clés à molette. Mais si vous comprenez le fonctionnement des autorisations, vous pouvez faire tout ce que vous voulez. Les fichiers sont sur VOTRE ordinateur après tout. Si vous voulez dire que vous avez supprimé vos propres autorisations, je l'ai mal formulé. Je voulais dire que j'ai SUPPRIMÉ les autorisations, pas ajouté un paramètre Refuser. J'aurais dû utiliser le mot «interdire».
NoelC
Une fois que le refus est défini, pour accéder à nouveau aux autorisations, il faut d'abord se définir comme propriétaire des fichiers.
harrymc
Droite. NE Cochez PAS une case dans la colonne «Refuser». Décochez plutôt "Lire et exécuter" dans la colonne Autoriser.
NoelC
2
Sur la base de mon expérience post-mise à jour 3, il suffit de modifier les autorisations sur vshub.exe pour supprimer l'accès d'exécution.
NoelC
61

J'utilise Windows 7 x64 avec Visual Studio Express 2015. J'ai mis fin à des processus ennuyeux avec le Gestionnaire des tâches. Ensuite, j'ai supprimé le dossier C: \ Program Files (x86) \ Common Files \ microsoft shared \ VsHub . Cette opération résout le problème, mais nécessite des droits d'administrateur.

xakepp35
la source
38
J'apprécie mon avis, car l'équipe DevTools a vraiment besoin d'arrêter de diffuser toutes ces conneries ennuyeuses en arrière-plan tout le temps. Suivez également les conseils pour supprimer le dossier VsHub car MS ne me donnera pas un moyen propre de désinstaller cette merde.
jerhewet
2
Cela a fonctionné pour moi, j'ai supprimé ce dossier et VsHub ne fonctionne plus dans le gestionnaire de tâches. Bien que je ne signale pas cela comme solution à cette question, je suis sûr qu'il existe un moyen plus propre de désactiver VsHub.
Reda Lahdili
18
J'ai trouvé une solution plus fidèle. Renommez le dossier VsHub en _VsHub , au lieu de le supprimer. Cela a l'avantage de revenir en arrière, si vous avez vraiment peur :)
xakepp35
4
Pendant le débogage, les outils de diagnostic qui affichent une vue en direct de l'utilisation du processeur et de la mémoire du processus ne fonctionnent pas.
Frederik
4
J'ai rencontré des problèmes avec VsHub et HttpHostx64 lorsque j'essayais de modifier un ancien fichier de concepteur linq en sql dans un ancien projet. Après avoir ouvert le concepteur, VS se verrouille et ne répond plus. Procmon a montré beaucoup d'activité de HttpHostx64.exe. J'ai renommé le dossier c: \ Program Files (x86) \ Common Files \ Microsoft Shared \ VsHub \ en "VsHub (bullshit)". Mon concepteur linq-to-sql se charge maintenant normalement. :)
Nick
30

Comme xakepp35 l'a mentionné, vous pouvez supprimer le dossier C: \ Program Files (x86) \ Common Files \ microsoft shared \ VsHub . Cependant, je soupçonne que les mises à jour ou d'autres installateurs essaieront probablement de le recréer.

Ce que j'ai fait, c'est d'arrêter tous les processus VS. Prenez possession du dossier (en tant qu'administrateur), puis RAR (ZIP) dans le dossier et supprimez-le enfin (RAR comme sauvegarde si j'ai besoin de récupérer les fichiers). Le mien est sur un SSD donc je veux économiser de l'espace. Sinon, vous pouvez simplement le renommer et le laisser en place.

Ensuite, pour éviter qu'il ne soit créé à nouveau, j'ai utilisé une ancienne astuce Win 3.1. Créez un fichier texte nommé VsHub.txt dans le dossier partagé C: \ Program Files (x86) \ Common Files \ microsoft . Renommez ensuite le fichier texte et supprimez l' extension .txt en laissant un fichier nommé VsHub . Étant donné que le système d'exploitation ne peut pas créer un dossier et un fichier du même nom au même emplacement, pouf, il est inaccessible en tant que dossier à VS et ses installateurs / mises à jour inaccessibles et futurs en tant que dossier non plus. Ensuite, si vous devez autoriser à nouveau l'accès à l'avenir, ajoutez simplement le .txt au fichier et c'est parti.

Wolfie
la source
8
Cette solution proposée a parfaitement fonctionné pour moi. Il a éliminé le flot de requêtes vshub dans Fiddler et les performances globales de VS sont considérablement améliorées. Microsoft, si vous lisez: moins c'est plus - le bloatware est la pire chose que vous puissiez laisser arriver aux logiciels de productivité.
Shaun
Juste pour vous assurer que personne n'obtienne d'idées folles sur la suppression de ce fichier pour permettre la création du répertoire, vous pouvez y ajouter une ACL à partir du clic droit / properties / security tab qui ne fait rien d'autre que de refuser à tout le monde les privilèges de suppression sur le fichier .
dgnuff
J'ai suivi cette astuce et j'ai obtenu une vitesse incroyable. Mon ordinateur est sensible à la mise en file d'attente du disque, ce qui signifie parfois que l'écran de démarrage de Visual Studio est là pendant 5 minutes (sans exagération). Merci beaucoup pour cela.
S Meaden
22

Cela semble être un couteau suisse de communication pour le studio visuel selon la réponse de @ sraboy. Il est utilisé lors du débogage pour afficher des informations de performances sur le processus en cours d'exécution, mais également pour envoyer des données de télémétrie à Microsoft sur le projet sur lequel vous travaillez. Vous pouvez créer et parcourir le code correctement s'il est désactivé (à première vue).

Supprimer, renommer ou bloquer la création du processus vshub avec AV rompra le traçage des performances que j'ai mentionné. La perte de vshub améliore la confidentialité lors de l'utilisation de Visual Studio car il communique avec vortex.data.microsoft.com, en transmettant des informations telles que les GUID de solution et de projet avec votre ID de compte. Vous trouverez ci-dessous une capture d'écran d'un violoniste interceptant les données HTTPS.

Le blocage de l'accès au niveau du réseau contribue à la confidentialité, mais ne résoudra pas votre problème d'utilisation des ressources. Je considérerais ce dernier comme une surcharge normale de l'exécution de Visual Studio.

Pour votre cas d'utilisation, vous pouvez probablement vous en sortir avec une forme de désactivation (le blocage de l'instanciation avec votre logiciel antivirus est probablement l'approche la plus propre), mais il peut prendre en charge des fonctionnalités supplémentaires que je n'ai pas encore comprises.

Données communiquées à Microsoft, via vshub

Frederik
la source
8

Pour ceux d'entre vous qui souhaitent conserver VSHub et toujours pouvoir utiliser Fiddler, vous pouvez configurer un filtre dans Fiddler avec le paramètre suivant:

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

EDIT - vous voudrez probablement ajouter ceci aussi:

Hosts > Show only the following Hosts: =
localhost;

afin d'omettre des vortex.data.microsoft.comrequêtes etc.

filtre vshub dans Fiddler

Ilan
la source
4

Selon un gestionnaire de programme Microsoft commentant le blog Visual Studio commentant le blog Visual Studio , il est utilisé pour prendre en charge la communication multi-outils dans la suite VS. Compte tenu de la complexité de Visual Studio, je ne recommanderais rien d'aussi sévère que la réponse de xakepp35 (le supprimer).

Sur mon Win10 x64 avec VS2015 en cours d'exécution, lors du débogage, il y a trois processus et l'utilisation totale de la RAM est inférieure à 150 Mo au total. Sauf si vous êtes en train de parcourir des pages sur une machine avec un minimum de RAM, ce n'est pas grand-chose à craindre. Étant donné que vous exécutez VS2015, je suppose que vous avez 150 Mo à perdre.

Jusqu'à ce que ou à moins que vous ne trouviez une documentation montrant explicitement ce que le Hub prend en charge, je vous recommande de le laisser. D'après mon expérience, les installations de Visual Studio sont beaucoup trop faciles à interrompre.

sraboy
la source
3
Sur ma machine après une journée de travail, ce programme prend 580 Mo. Même après avoir fermé VS2015, ce programme ne s'arrête pas. Je pense que c'est beaucoup de RAM pour un programme qui prend en charge des fonctionnalités (cloud, udpates) que je n'utilise pas.
0xBADF00D
Cela semble également dépendre de la taille de votre solution.
Ed DeGagne
1
Eh bien, le problème est qu'il ne fait que croître sans limites. Je n'ai installé 2015 qu'hier et ce matin j'avais un mystère de 7 Go à enquêter. Juste idiot. Outils de diagnostic désactivés.
Nick Westgate
3

L'une des raisons pour lesquelles Visual Studio tente de se connecter en ligne semble également que, par défaut, recherche en ligne des mises à jour pour Visual Studio et ses extensions.

En outre, Visual Studio inclut une version d'Internet Explorer dans son noyau afin que la page Web (et l'extension) puissent être téléchargées en direct. En d'autres termes, il agit également comme un navigateur et comme nous le savons tous ... Microsoft tient à vérifier les données de ses utilisateurs et l'utilisation de ses logiciels.

Il existe de nombreuses fonctions en ligne dans le menu OutilsOptions . (Pour être honnête, je préfère MonoDevelop même avec ses défauts.)

user3345048
la source
2
Je suis récemment passé à Sublime Text, je ne peux pas suivre VS ralentissant ma machine.
Reda Lahdili
1
Nous sommes sur le point de convertir tous nos services Web basés sur .NET en Java parce que les outils Microsoft sont vraiment horribles.
écraser
2

Il est nécessaire pour BrowserLink, la fenêtre Diagnostics, Intellitrace.

J'ai parfois besoin de ces fonctionnalités, mais je n'ai que 8 Go de RAM. Je suis généralement à 90-95% d'utilisation, j'ai donc créé un fichier de commandes pour activer et désactiver VSHub en renommant le dossier et en créant un lien symbolique vers un dossier vide avec des fichiers factices.

Arrêtez Visual Studio avant de l'exécuter.

@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

Sur ma machine, VSHub et ses copains utilisent généralement:

  • VsHub.exe: 50 Mo au départ. 250-350 Mo après plus de 2 heures
  • Microsoft.VsHub.Server.HttpHost.exe: 200 Mo au départ. 350 + Mo après 1+ heures
  • Microsoft.VsHub.Server.HttpHostx64.exe: 320 Mo au départ. 550 + Mo après 1+ heures

Cela libère plus de 1 Go de RAM avec pratiquement aucune fonctionnalité perdue.

Derek Ziemba
la source
0

«VsHub» doit être renommé «SmartMobileCloud»; c'est à quel point c'est stupide Je l'ai jeté; mon édition / débogage VisualC n'a pas été endommagé.

Après avoir installé VisualStudio, supprimez les extensions non utilisées, effectuez le correctif "C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ - Deleted - VsHub" ... et placez-y un fichier texte "VsHub" (pas de ".TXT" ), donc rien ne peut recréer le dossier.

Jeff Relf
la source