Come disabilitare VsHub.exe nella barra delle applicazioni?


138

L'avvio di Visual Studio 2015 avvia anche altri due eseguibili:

VsHub.exe

e

Microsoft.VsHub.Server.HttpHost.exe

Entrambi occupano uno spazio considerevole nel task manager.

Come posso eliminare questa opzione "Visual Studio Hub"? Non utilizzo nessuna delle funzionalità di alto livello di Visual Studio, inclusa quella di Visual Studio Hub.


15
Beh, davvero non uso Visual Studio per qualcosa di diverso dalla modifica del codice. Uso Unity e la compilazione viene eseguita dal compilatore integrato, quindi tutto ciò che voglio vedere in VS è un editor di testo elaborato. Inoltre, non voglio usare VS Code poiché manca di completamento automatico per Unity e non è possibile creare temi personalizzati.
Reda Lahdili,

2
@RedaLahdili Che cosa hai fatto? Entrambi i file sono in esecuzione anche quando non eseguo VS2015.
prettyvoid,

2
Il tuo caso sembra peggiore del mio! Purtroppo non ho trovato alcuna soluzione. Hanno davvero bisogno di fare qualcosa al riguardo. A volte VSHub occupa più memoria di VS stesso. uggh ... Tienici aggiornati ragazzi se trovate qualche soluzione.
Reda Lahdili,


1
Microsoft.VsHub.Server.HttpHostx64.exe ha una perdita di memoria che causa l'arresto di Windows 10. Vedi: connect.microsoft.com/VisualStudio/feedback/details/1610160/…
Olivier Jacot-Descombes

Risposte:


131

Ho pensato di provare a far luce sull'hub VS e su cosa è destinato. Lavoro per Microsoft.

Come sraboy menziona, VS Hub è un host di servizi out-of-proc che Visual Studio (e altri prodotti basati su shell VS come Blend) usano per supportare la comunicazione multi-tool, una migliore reattività all'interno di devenv (VS) e consentire a determinati servizi di estendersi oltre la durata del processo di generazione. Il set di servizi attualmente ospitato nell'hub VS include molti degli elementi richiamati nelle altre risposte, come le impostazioni di roaming, l'elaborazione di ampie strisce di dati ETL che vengono rese negli strumenti di diagnostica, alcuni rapporti di telemetria e l'aggiornamento automatico dell'estensione e notifiche. È probabile che quel set di servizi cresca in futuro, quindi anche se nessuno di questi servizi sembra necessario al momento, in futuro verranno ospitati servizi aggiuntivi (vale a dire che è un martello piuttosto grande disabilitare il vshub.

In termini di durata, i processi vshub e host (ad es. Microsoft.VsHub.Server.HttpHost (64) .exe) possono rimanere in esecuzione dopo la chiusura di devenv.exe. Tuttavia, non dovrebbero continuare a funzionare indefinitamente. Nella maggior parte dei casi questi processi termineranno entro ~ 5 minuti dall'ultima istanza di una chiusura della shell basata su VS. Quindi se hai un'istanza di VS in esecuzione (devenv.exe) e un'istanza di Blend in esecuzione (blend.exe) e chiudi devenv.exe, vshub e i processi host associati continueranno a funzionare. Se si spegne quindi blend.exe, vshub e il processo host associato saranno ancora in esecuzione. Dopo circa 5 minuti da allora, tuttavia, quei processi aggiuntivi verranno chiusi. Se avvii un'altra istanza di devenv.exe in quella finestra di 5 minuti, allora vshub e i processi host associati non verranno chiusi,

Per quanto riguarda le risorse, il processo stesso vshub.exe dovrebbe sempre essere relativamente agile. Se mai diventa grande, allora è un bug e mi piacerebbe saperlo in modo che possiamo risolverlo :-) I processi host, d'altra parte, possono diventare molto grandi a seconda del servizio che viene ospitato. In particolare, gli strumenti di diagnostica funzionano elaborando ETL. ETL può essere molto, molto, grande e, come tale, l'host può utilizzare molte risorse. Il team di diagnostica sta cercando modi per ridurlo, ma per il momento, chiudere la finestra dello strumento di diagnostica quando non è necessario dovrebbe aiutare a mitigare il problema.

In termini di connettività online, al momento ci sono tre fonti principali nell'attuale serie di servizi ospitati (nota, questo cambierà nel tempo). Innanzitutto, come menzionato da user3345048, il servizio che rileva e aggiorna automaticamente le estensioni viene eseguito in tale processo. Le opzioni che controllano tale comunicazione sono in Strumenti | Opzioni | Ambiente | Estensioni e aggiornamenti (vedere le prime due caselle di controllo). In secondo luogo, le impostazioni di roaming vengono eseguite come servizio nell'hub VS. L'impostazione che controlla questo comportamento è in Strumenti | Opzioni | Ambiente | Impostazioni sincronizzate (o più olisticamente, se non accedi all'account di personalizzazione nell'angolo in alto a destra di VS). Infine, l'hub VS segnala i dati di telemetria. Il volume di questi dati può essere notevolmente ridotto tramiteAiuto | Opzioni di feedback dei clienti | Impostazioni ... voce di menu. Puoi anche leggere il tipo di telemetria che Microsoft raccoglie e come viene utilizzato in quella posizione.


40
Anson - Ho Visual Studio 2015 con la versione RTM 1 su Windows 7. Se apro Fiddler4, vedo centinaia o più chiamate al secondo a localhost / vshub / sameGuidHereOverAndOver. Questo è assolutamente inaccettabile - non so cosa vshost.exe pensi stia facendo, ma è completamente impazzito. Posso uccidere il processo e succede ancora. Potrebbe essere necessario tornare al 2013 ...
Mario,

4
@Mario - come avete visto vshub spesso agisce come un server HTTP locale, quindi ci si aspetta si dovrebbe vedere un po 'di traffico ogni volta che è in esecuzione (http agisce come IPC). Centinaia di richieste al secondo per qualsiasi periodo di tempo prolungato è sicuramente un bug. Puoi controllare i log in% temp% \ VsHub che dovrebbe indicare se vengono generate eccezioni e ovviamente hai già capito come ispezionare il traffico. La cosa migliore da fare sarebbe segnalarlo come un problema tramite connect.microsoft.com poiché ci fornirà un canale per raccogliere i registri e simili e cercare di assicurarci che venga riparato
Anson Horton,

28
Ecco che Microsoft.VsHub.Server.HttpHost64.exe è "agile" sul mio computer - imgur.com/DKvSNqf - è 1 GB di RAM a cui ha raggiunto il picco. Bello.
sh1rts

7
@ sh1rts - Capisco la tua frustrazione. Il commento "agile" che ho fatto sopra era mirato a vshub.exe. Microsoft.VsHub.Server.HttpHost64.exe è il processo host che esegue vari servizi, inclusi alcuni che possono richiedere molta memoria (ad esempio gli strumenti diagnostici che iniziano quando si utilizza F5 o se si sceglie esplicitamente di eseguire analisi di reattività della memoria o dell'interfaccia utente ). Puoi provare alcuni degli interruttori che menziono sopra per disabilitare alcuni di quei servizi per vedere se questo aiuta, ma generalmente lavoreremo per ridurre l'overhead di memoria complessivo nelle versioni future.
Anson Horton,

17
Quindi qual è il modo per smettere di vedere centinaia di richieste / vshub / GUID in Fiddler. Ciò rende impossibile il debug di qualsiasi client HTTP in Visual Studio, perché per ogni passaggio durante il debug vedo 10+ richieste in fiddler e la richiesta che mi interessa è persa :-(. Inoltre è un modo seriamente inefficiente di inter-processo comunicazione per effettuare richieste HTTP su localhost
Đonny

82

Qualcosa che nessuno ha menzionato sopra ...

Secondo il mio registro del firewall, VsHub.exe, Microsoft.VsHub.Server.HttpHost.exe e Microsoft.VsHub.Server.HttpHostx64.exe provano tutti a comunicare online .

Gli indirizzi che ho visto a cui si sono verificati tentativi di connessione in uscita includevano 191.236.194.164 (Microsoft Azure, Wichita Kansas) e 23.102.160.172 (Microsoft Azure, Redmond Washington).

Mi rendo conto che il software "moderno" dovrebbe essere integrato nel cloud, ma ...

Come uno che non richiede nulla dai server Microsoft Azure e che è legittimamente interessato alla privacy e non perde alcuna parte di ciò su cui sto lavorando al mondo esterno, vorrei davvero che A) avesse un modo di scegliere di non per eseguire questi programmi, o B) essere dotato di impostazioni per limitare la loro chattiness online. Sì, il firewall blocca le connessioni, ma questa è l'ultima risorsa.

Solo una semplice casella di controllo, "[] Contatta Microsoft Azure Server" sarebbe utile. Che ciò significhi non eseguire i programmi in questione o semplicemente non averli collegati online non è una conseguenza per me. Immagino che dal punto di vista delle risorse il primo sarebbe meglio in quanto userebbe meno risorse.

Di norma non proporrei di modificare i file nella suite di file di un'applicazione installata, ma poiché ho un ambiente di macchina virtuale all'interno del quale posso testare le modifiche a Visual Studio 2015 senza molte conseguenze (le istantanee sono meravigliose), ho provato a modificare le autorizzazioni (per rimuovere l'eredità, quindi non consentire la lettura e l'esecuzione per gli utenti) su questi tre file.

Voilà, non più applicazioni VsHub in esecuzione, cercando di contattare i sistemi remoti.

Visual Studio arriva subito. Non vedo un aspetto negativo qui.

-Noel


Unico inconveniente: tu stesso non puoi più modificare questi file.
harrymc,

Non sono sicuro di cosa intendi, Harry. Puoi per favore essere più specifico? Stai parlando di problemi di accesso alle autorizzazioni? Come amministratore sei ancora padrone di ogni file sul tuo computer, anche se a volte Microsoft lancia chiavi di scimmia. Ma se capisci come funzionano le autorizzazioni puoi fare tutto quello che vuoi. I file sono sul TUO computer dopo tutto. Se intendi che hai rimosso le tue autorizzazioni, le ho formulate male. Volevo dire che ho rimosso le autorizzazioni, non ho aggiunto un'impostazione Nega. Avrei dovuto usare la parola "Non consentire".
NoelC,

Una volta impostato nega, per accedere nuovamente alle autorizzazioni è necessario prima impostarsi come proprietario dei file.
harrymc,

Destra. NON selezionare una casella nella colonna "Nega". Piuttosto, deseleziona "Leggi ed esegui" nella colonna Consenti.
NoelC,

2
Sulla base della mia esperienza post-aggiornamento 3, basta cambiare le autorizzazioni su vshub.exe per rimuovere l'accesso di esecuzione.
NoelC

61

Sto usando Windows 7 x64 con Visual Studio Express 2015. Ho terminato i fastidiosi processi con Task Manager. Quindi ho eliminato la cartella C: \ Programmi (x86) \ Common Files \ microsoft shared \ VsHub . Questa operazione risolve il problema, ma richiede i diritti di amministratore.


38
Mi raccomando, perché il team DevTools ha davvero bisogno di smettere di eseguire tutte queste fastidiose cazzate in background per tutto il tempo. Seguendo anche il consiglio di eliminare la cartella VsHub perché MS non mi darà un modo pulito per disinstallare questa merda.
jerhewet,

2
Questo ha funzionato per me, ho cancellato quella cartella e VsHub non funziona più nel task manager. Anche se non lo contrassegnerò come soluzione per questa domanda, sono sicuro che esiste un modo più pulito per disabilitare VsHub.
Reda Lahdili,

18
Ho trovato una soluzione più fedele. Rinomina la cartella VsHub in _VsHub , anziché eliminarla. Questo ha il vantaggio di tornare indietro, se hai davvero paura :)
xakepp35

4
Durante il debug, gli strumenti diagnostici che mostrano una vista dal vivo della CPU e dell'utilizzo della memoria del processo in corso non funzionano.
Frederik,

4
Mi sono imbattuto in problemi con VsHub e HttpHostx64 quando stavo cercando di modificare un vecchio file linq in sql designer in un vecchio progetto. Dopo aver aperto il designer, VS si bloccherebbe e non risponderà. Procmon ha mostrato molte attività da HttpHostx64.exe. Ho rinominato la cartella c: \ Programmi (x86) \ File comuni \ Microsoft Shared \ VsHub \ in "VsHub (stronzate)". Il mio designer linq-sql ora si carica normalmente. :)
Nick,

30

Come menzionato xakepp35, è possibile eliminare la cartella C: \ Programmi (x86) \ File comuni \ microsoft shared \ VsHub . Tuttavia, sospetto che gli aggiornamenti o altri installatori probabilmente proveranno a ricrearlo.

Quello che ho fatto è stato chiudere tutti i processi VS. Assumi la proprietà della cartella (come amministratore) e quindi RAR (ZIP) nella cartella e infine eliminala (RAR come backup se ho bisogno dei file indietro). Il mio è su un SSD, quindi voglio risparmiare spazio. Altrimenti potresti semplicemente rinominarlo e lasciarlo in posizione.

Quindi per evitare che venisse creato di nuovo, ho usato un vecchio trucco di Win 3.1. Creare un file di testo denominato VsHub.txt nella cartella condivisa C: \ Programmi (x86) \ File comuni \ microsoft . Quindi rinominare il file di testo e rimuovere l' estensione .txt lasciando un file chiamato VsHub . Dal momento che il sistema operativo non è in grado di creare una cartella e un file con lo stesso nome nella stessa posizione, poof, è inaccessibile come cartella a VS e anche i suoi programmi di installazione / aggiornamento inaccessibili e futuri come cartella. Quindi, se è necessario consentire nuovamente l'accesso in futuro, è sufficiente aggiungere nuovamente il file .txt sul file e il gioco è fatto.


8
Questa soluzione proposta ha funzionato perfettamente per me. Ha eliminato il flusso di richieste di vshub in Fiddler e le prestazioni complessive di VS sono notevolmente migliorate. Microsoft, se stai leggendo: less is more - bloatware è la cosa peggiore che puoi lasciare accadere al software di produttività.
Shaun,

Solo per essere sicuri che nessuno riceva idee folli sulla rimozione di quel file per consentire la creazione della directory, è possibile aggiungere un ACL ad esso dal tasto destro del mouse / proprietà / scheda di sicurezza che non fa altro che negare a tutti di eliminare i privilegi sul file .
Dgnuff,

Ho seguito questo suggerimento e ho ottenuto un'incredibile velocità di risposta. Il mio computer è sensibile all'accodamento del disco che a volte significa che la schermata iniziale di Visual Studio è lì per 5 minuti (nessuna esagerazione). Grazie mille per questo.
S Meaden,

22

Questo sembra essere un coltello dell'esercito svizzero di comunicazione per visual studio secondo la risposta di @ sraboy. Viene utilizzato durante il debug per visualizzare informazioni sulle prestazioni del processo in esecuzione, ma anche per inviare dati di telemetria a Microsoft sul progetto su cui si sta lavorando. È possibile compilare e scorrere bene il codice con esso disabilitato (a prima vista).

La rimozione, la ridenominazione o il blocco della creazione del processo vshub con AV interromperà la traccia delle prestazioni menzionata. La perdita di vshub migliora la privacy durante l'utilizzo di Visual Studio in quanto comunica con vortex.data.microsoft.com, passando informazioni come GUID di soluzioni e progetti insieme all'ID account. Di seguito è riportato uno screenshot del violinista che intercetta i dati HTTPS.

Il blocco dell'accesso a livello di rete aiuta con la privacy, ma non risolverà il problema di utilizzo delle risorse. Considererei quest'ultimo come un normale sovraccarico di esecuzione di Visual Studio.

Per il tuo caso d'uso, puoi probabilmente cavartela con una qualche forma di disabilitazione (bloccare l'istanza con il tuo software antivirus è probabilmente l'approccio più pulito), ma potrebbe supportare funzionalità aggiuntive che non ho ancora capito.

Dati comunicati a Microsoft, tramite vshub


8

Per quelli di voi che vogliono preservare VSHub ed essere ancora in grado di usare Fiddler, è possibile impostare un filtro in Fiddler con le seguenti impostazioni:

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

EDIT: probabilmente vorrai aggiungere anche questo:

Hosts > Show only the following Hosts: =
localhost;

per omettere vortex.data.microsoft.comrichieste ecc

filtro vshub in Fiddler


4

Secondo un Program Manager di Microsoft commentando il blog di Visual Studio commentando il blog di Visual Studio , viene utilizzato per supportare la comunicazione multi-tool attraverso la suite VS. Dato quanto è complicato Visual Studio, non consiglierei nulla di così duro come la risposta di xakepp35 (eliminandolo).

Sul mio Win10 x64 con VS2015 in esecuzione, durante il debug, ci sono tre processi e l'utilizzo totale di RAM è inferiore a 150 MB in totale. A meno che non si stia sfogliando la pagina su una macchina con una RAM minima di cui non c'è molto di cui preoccuparsi. Dato che stai eseguendo VS2015, immagino che tu abbia 150 MB di riserva.

Fino a quando o a meno che non trovi la documentazione che mostri esplicitamente ciò che Hub supporta, ti consiglio di lasciarlo. Nella mia esperienza, le installazioni di Visual Studio sono fin troppo facili da interrompere.


3
Sulla mia macchina dopo una giornata di lavoro questo programma richiede 580 MB. Anche dopo aver chiuso VS2015, questo programma non si interrompe. Penso che sia un bel po 'di RAM per un programma che supporta funzionalità (cloud, udpates) che non uso.
0xBADF00D

Anche questo sembra dipendere dalle dimensioni della tua soluzione.
Ed DeGagne,

1
Bene, il problema è che cresce senza limiti. Ho installato solo il 2015 ieri e questa mattina avevo un mistero da 7 GB da investigare. Solo sciocco. Strumenti diagnostici per disabili.
Nick Westgate,

3

Uno dei motivi per cui Visual Studio tenta di connettersi online sembra anche che, per impostazione predefinita, cerchi gli aggiornamenti sia in Visual Studio sia nelle sue estensioni.

Inoltre, Visual Studio include una versione di Internet Explorer nel suo core in modo che la pagina Web (e l'estensione) possano essere scaricate dal vivo. In altre parole, funge anche da browser e come tutti sappiamo ... Microsoft è piuttosto entusiasta di controllare i dati dei suoi utenti e l'utilizzo del suo software.

Ci sono molte funzioni online nel menu StrumentiOpzioni . (Ad essere sincero, preferisco MonoDevelop anche con i suoi difetti.)


2
Di recente sono passato a Sublime Text, non riesco a tenere il passo con VS che rallenta la mia macchina.
Reda Lahdili,

1
Stiamo per convertire tutti i nostri servizi Web basati su .NET in Java perché gli strumenti Microsoft sono semplicemente terribili.
schiaccia il

2

È necessario per BrowserLink, la finestra Diagnostics, Intellitrace.

A volte ho bisogno di queste funzionalità, ma ho solo 8 GB di RAM. Di solito utilizzo il 90-95%, quindi ho creato un file batch per attivare e disattivare VSHub rinominando la cartella e creando un collegamento simbolico a una cartella vuota con file fittizi.

Arrestare Visual Studio prima di eseguirlo.

@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

Sul mio computer VSHub e i suoi amici di solito usano:

  • VsHub.exe: inizialmente 50 MB. 250-350 MB dopo 2+ ore
  • Microsoft.VsHub.Server.HttpHost.exe: inizialmente 200 MB. 350 + MB dopo 1+ ore
  • Microsoft.VsHub.Server.HttpHostx64.exe: inizialmente 320 MB. 550 + MB dopo 1+ ore

Ciò consente di liberare oltre 1 GB di RAM senza perdere praticamente alcuna funzionalità.


0

"VsHub" dovrebbe essere rinominato in "SmartMobileCloud"; è così stupido. L'ho scaricato; il mio editing / debugging di VisualC non è stato danneggiato.

Dopo aver installato VisualStudio, rimuovere le estensioni non utilizzate, eseguire la correzione "C: \ Programmi (x86) \ Common Files \ Microsoft Shared \ - Deleted - VsHub" ... e inserire lì un file di testo "VsHub" (no ".TXT" ), quindi nulla può ricreare la cartella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.