¿Cómo deshabilito VsHub.exe en la bandeja del sistema?

138

Al iniciar Visual Studio 2015 también se lanzan otros dos ejecutables:

VsHub.exe

y

Microsoft.VsHub.Server.HttpHost.exe

Ambos ocupan un espacio considerable en el administrador de tareas.

¿Cómo puedo eliminar esta opción "Visual Studio Hub"? No uso ninguna de las características de primer nivel de Visual Studio, incluida la de Visual Studio Hub.

Reda Lahdili
fuente
15
Bueno, realmente no uso Visual Studio para otra cosa que no sea la edición de código. Uso Unity y la compilación la realiza el compilador incorporado, por lo que todo lo que quiero ver en VS es un elegante editor de texto. Además, no quiero usar VS Code, ya que carece de finalización automática para Unity y no puede crear sus propios temas personalizados.
Reda Lahdili
2
@RedaLahdili ¿Qué terminaste haciendo? Ambos archivos se están ejecutando incluso cuando no estoy ejecutando VS2015.
prettyvoid
2
¡Tu caso parece peor que el mío! Lamentablemente no he encontrado ninguna solución. Realmente necesitan hacer algo al respecto. A veces, VSHub toma más memoria que VS en sí. uggh ... Mantennos actualizados, chicos, si encuentras alguna solución.
Reda Lahdili
1
Otra solución es: stackoverflow.com/questions/31904929/…
oguzh4n
1
Microsoft.VsHub.Server.HttpHostx64.exe tiene una pérdida de memoria que hace que mi Windows 10 se cierre. Ver: connect.microsoft.com/VisualStudio/feedback/details/1610160/…
Olivier Jacot-Descombes

Respuestas:

131

Pensé que intentaría arrojar algo de luz sobre el VS Hub y para qué está destinado. Yo trabajo para Microsoft.

Como menciona sraboy, VS Hub es un host de servicios fuera de proceso que Visual Studio (y otros productos basados ​​en shell VS como Blend) utilizan para admitir la comunicación de múltiples herramientas, una mejor capacidad de respuesta dentro de devenv (VS) y permitir que ciertos servicios se extiendan más allá de la vida útil del proceso de generación. El conjunto de servicios actualmente alojados en el VS Hub incluye muchos de los elementos mencionados en las otras respuestas, como la configuración de itinerancia, el procesamiento de grandes extensiones de datos ETL que se prestan en las herramientas de diagnóstico, algunos informes de telemetría y la actualización automática de extensiones y notificaciones. Sin embargo, es muy probable que ese conjunto de servicios crezca en el futuro, por lo que incluso si ninguno de esos servicios parece necesario en este momento, se alojarán servicios adicionales allí en el futuro (es decir, es un martillo bastante grande para deshabilitar el vshub.

En términos de vida útil, los procesos vshub y host (es decir, Microsoft.VsHub.Server.HttpHost (64) .exe) pueden seguir ejecutándose después de que se cierre devenv.exe. Sin embargo, no deben seguir ejecutándose indefinidamente. En la mayoría de los casos, estos procesos finalizarán dentro de ~ 5 minutos desde la última instancia de un cierre de shell basado en VS. Entonces, si tiene una instancia de VS en ejecución (devenv.exe) y una instancia de Blend en ejecución (blend.exe), y cierra devenv.exe, vshub y los procesos host asociados seguirán ejecutándose. Si luego cierra blend.exe, vshub y el proceso de host asociado seguirán ejecutándose. Después de aproximadamente 5 minutos a partir de entonces, sin embargo, esos procesos adicionales se cerrarán. Si inicia otra instancia de devenv.exe dentro de esa ventana de 5 minutos, entonces vshub y los procesos de host asociados no finalizarán,

En cuanto a los recursos, el proceso vshub.exe en sí mismo siempre debería ser relativamente ágil. Si alguna vez se agranda, entonces es un error y me encantaría saberlo para poder solucionarlo :-) Los procesos del host, por otro lado, pueden aumentar mucho dependiendo del servicio que se aloja. En particular, las herramientas de diagnóstico funcionan procesando ETL. ETL puede ser muy, muy grande y, como tal, el host puede usar muchos recursos. El equipo de diagnóstico está buscando formas de reducir eso, pero por el momento, cerrar la ventana de la herramienta de diagnóstico cuando no la necesite debería ayudar a mitigar el problema.

En términos de conectividad en línea, hay tres fuentes principales en el conjunto actual de servicios alojados en este momento (tenga en cuenta que esto cambiará con el tiempo). Primero, como menciona el usuario 3345048, el servicio que detecta y actualiza automáticamente las extensiones se ejecuta en ese proceso. Las opciones que controlan esa comunicación están en Herramientas | Opciones | Medio ambiente | Extensiones y actualizaciones (ver las dos primeras casillas de verificación). En segundo lugar, la configuración de roaming se ejecuta como un servicio en VS Hub. La configuración que controla este comportamiento está en Herramientas | Opciones | Medio ambiente | Configuraciones sincronizadas (o más holísticamente, si no inicia sesión en la cuenta de personalización en la esquina superior derecha de VS). Finalmente, el VS Hub informa telemetría. El volumen de estos datos se puede reducir significativamente a través deAyuda | Opciones de comentarios del cliente | Configuración ... elemento del menú. También puede leer sobre el tipo de telemetría que recopila Microsoft y cómo se usa en esa ubicación.

Anson Horton
fuente
40
Anson: tengo Visual Studio 2015 con la versión 1 de RTM en Windows 7. Si abro Fiddler4, veo cientos o más llamadas por segundo a localhost / vshub / sameGuidHereOverAndOver. Esto es completamente inaceptable: no sé qué vshost.exe cree que está haciendo, pero se ha vuelto completamente loco. Puedo matar el proceso y aún sucede. Puede que tenga que volver al 2013 ...
Mario
44
@ Mario: como has visto, vshub a menudo actúa como un servidor http local, por lo que se espera que veas algo de tráfico cada vez que se esté ejecutando (http actúa como IPC). Cientos de solicitudes por segundo durante un período de tiempo prolongado es definitivamente un error. Puede verificar los registros en% temp% \ VsHub, lo que debería indicar si hay alguna excepción, y obviamente ya ha descubierto cómo inspeccionar el tráfico. La mejor cosa a hacer sería informar esto como un problema a través connect.microsoft.com ya que nos dará un canal para recoger los troncos y tal y tratar de asegurarse de que se fija
Anson Horton
28
Aquí está Microsoft.VsHub.Server.HttpHost64.exe siendo "ágil" en mi máquina, imgur.com/DKvSNqf , es decir, 1 GB de RAM alcanzó su punto máximo. Agradable.
sh1rts
77
@ sh1rts - Entiendo tu frustración. El comentario "ágil" que hice arriba estaba dirigido a vshub.exe. Microsoft.VsHub.Server.HttpHost64.exe es el proceso de host que ejecuta varios servicios, incluidos algunos que pueden requerir mucha memoria (por ejemplo, las herramientas de diagnóstico que se inician cuando usa F5, o si elige explícitamente hacer un análisis de respuesta de memoria o interfaz de usuario) ) Puede probar algunos de los conmutadores que menciono anteriormente para deshabilitar algunos de esos servicios para ver si eso ayuda, pero generalmente trabajaremos para reducir la sobrecarga general de memoria en futuras versiones.
Anson Horton el
17
Entonces, ¿cuál es la forma de dejar de ver cientos de solicitudes / vshub / GUID en Fiddler. Esto hace que sea imposible depurar cualquier cliente HTTP en Visual Studio, porque en cada paso durante la depuración veo más de 10 solicitudes en fiddler y la solicitud que me interesa se pierde :-(. Además, es una forma muy ineficiente de interproceso comunicación para realizar solicitudes HTTP en localhost.
Đonny
82

Algo que nadie mencionó anteriormente ...

De acuerdo con el registro de mi firewall, VsHub.exe, Microsoft.VsHub.Server.HttpHost.exe y Microsoft.VsHub.Server.HttpHostx64.exe intentan comunicarse en línea .

Las direcciones que vi a las que hubo intentos de conexión salientes incluyeron 191.236.194.164 (Microsoft Azure, Wichita Kansas) y 23.102.160.172 (Microsoft Azure, Redmond Washington).

Me doy cuenta de que se supone que el software "moderno" está integrado en la nube, pero ...

Como alguien que no requiere nada de los servidores de Microsoft Azure, y que está legítimamente preocupado por la privacidad y no filtrar ninguna parte de lo que estoy trabajando en el mundo exterior, realmente me gustaría que A) tuviera una forma de elegir no para ejecutar estos programas, o B) contar con configuraciones para limitar su chat en línea. Sí, el firewall bloquea las conexiones, pero ese es el último recurso.

Solo una simple casilla de verificación, "[] Contactar con los servidores de Microsoft Azure" sería bueno. Si eso significaría no ejecutar los programas en cuestión o simplemente hacer que no hagan las conexiones en línea, no es una consecuencia para mí. Supongo que desde la perspectiva de los recursos, lo primero sería mejor ya que usaría menos recursos.

Como regla general, no propondría cambiar los archivos en el conjunto de archivos de una aplicación instalada, pero como tengo un entorno de máquina virtual en el que puedo probar los cambios a Visual Studio 2015 sin mucha consecuencia (las instantáneas son maravillosas), intenté alterar los permisos (para eliminar la herencia y luego no permitir Leer y ejecutar para usuarios) en estos tres archivos.

Voila, no más aplicaciones VsHub ejecutándose, tratando de contactar sistemas remotos.

Visual Studio viene de inmediato. No estoy viendo un inconveniente aquí.

-Navidad

NoelC
fuente
Desventaja: usted mismo ya no puede modificar estos archivos.
harrymc
No estoy seguro de lo que quieres decir, harrymc. ¿Puedes ser más específico por favor? ¿Estás hablando de problemas para acceder a los permisos? Como administrador, usted todavía domina todos los archivos de su computadora, aunque a veces Microsoft arroja llaves inglesas en el camino. Pero si comprende cómo funcionan los permisos, puede hacer lo que quiera. Los archivos están en SU ​​computadora después de todo. Si quiere decir que ha eliminado sus propios permisos, lo redacté mal. Quise decir que eliminé los permisos, no agregué una configuración de denegación. Debería haber usado la palabra "No permitir".
NoelC
Una vez que se establece la denegación, para volver a acceder a los permisos, primero tiene que establecerse como propietario de los archivos.
harrymc
Correcto. NO marque una casilla en la columna "Denegar". Más bien, DESCOMPRUEBE "Leer y ejecutar" en la columna Permitir.
NoelC
2
Según mi experiencia posterior a la Actualización 3, parece que basta con cambiar los permisos en vshub.exe para eliminar el acceso de ejecución.
NoelC
61

Estoy usando Windows 7 x64 con Visual Studio Express 2015. He terminado procesos molestos con el Administrador de tareas. Luego he eliminado la carpeta C: \ Archivos de programa (x86) \ Archivos comunes \ microsoft shared \ VsHub . Esta operación resuelve el problema, pero requiere derechos de administrador.

xakepp35
fuente
38
Voté de mi parte, porque el equipo de DevTools realmente necesita dejar de ejecutar toda esta mierda molesta en el fondo todo el tiempo. También siguiendo los consejos para eliminar la carpeta VsHub porque MS no me dará una manera limpia de desinstalar esta basura.
jerhewet
2
Esto funcionó para mí, eliminé esa carpeta y VsHub ya no se ejecuta en el administrador de tareas. Aunque no marcaré esto como solución para esta pregunta, estoy seguro de que hay una forma más limpia de deshabilitar VsHub.
Reda Lahdili
18
He encontrado una solución más leal. Cambie el nombre de la carpeta VsHub a _VsHub , en lugar de eliminar. Esto tiene la ventaja de retroceder, si realmente tienes miedo :)
xakepp35
44
Durante la depuración, las herramientas de diagnóstico que muestran una vista en vivo del uso de CPU y memoria del proceso no funcionan.
Frederik
44
Me encontré con problemas con VsHub y HttpHostx64 cuando estaba tratando de alterar un viejo archivo de diseñador de linq a sql en un proyecto antiguo. Después de abrir el diseñador, VS se encerraría y no respondería. Procmon mostró mucha actividad de HttpHostx64.exe. Cambié el nombre de la carpeta c: \ Archivos de programa (x86) \ Archivos comunes \ Microsoft Shared \ VsHub \ a "VsHub (bullshit)". Mi diseñador de linq a sql ahora se carga normalmente. :)
Nick
30

Como mencionó xakepp35, puede eliminar la carpeta C: \ Archivos de programa (x86) \ Archivos comunes \ microsoft shared \ VsHub . Sin embargo, sospecho que las actualizaciones u otros instaladores probablemente intentarán recrearlo.

Lo que hice fue cerrar todos los procesos VS. Tome posesión de la carpeta (como administrador) y luego RAR (ZIP) hasta la carpeta y finalmente elimínela (RAR como copia de seguridad si necesito recuperar los archivos). El mío está en un SSD, así que quiero ahorrar espacio. De lo contrario, simplemente puede cambiarle el nombre y dejarlo en su lugar.

Luego, para evitar que se vuelva a crear, utilicé un viejo truco de Win 3.1. Cree un archivo de texto llamado VsHub.txt en la carpeta compartida C: \ Archivos de programa (x86) \ Archivos comunes \ microsoft . Luego cambie el nombre del archivo de texto y quite la extensión .txt dejando un archivo llamado VsHub . Dado que el sistema operativo no puede crear una carpeta y un archivo del mismo nombre en la misma ubicación, poof, es inaccesible como una carpeta para VS y sus instaladores / actualizadores inaccesibles y futuros tampoco como una carpeta. Luego, si necesita permitir el acceso nuevamente en el futuro, simplemente agregue el archivo .txt nuevamente al archivo y listo.

Wolfie
fuente
8
Esta solución propuesta funcionó perfectamente para mí. Eliminó la avalancha de solicitudes de vshub en Fiddler y el rendimiento general de VS se mejoró sustancialmente. Microsoft, si estás leyendo: menos es más: el bloatware es lo peor que puedes dejar pasar al software de productividad.
Shaun
Solo para asegurarse de que nadie tenga ideas descabelladas sobre la eliminación de ese archivo para permitir la creación del directorio, puede agregarle una ACL desde el botón derecho / propiedades / pestaña de seguridad que no hace nada más que negarle a todos los privilegios de eliminación en el archivo .
dgnuff
Seguí este consejo y obtuve una velocidad increíble. Mi computadora es susceptible a la puesta en cola del disco, lo que a veces significa que la pantalla de bienvenida de Visual Studio está allí durante 5 minutos (sin exageración). Muchas gracias por esto.
S Meaden
22

Esta parece ser una navaja suiza de comunicación para el estudio visual según la respuesta de @ sraboy. Se utiliza durante la depuración para mostrar información de rendimiento sobre el proceso en ejecución, pero también para enviar telemetría a Microsoft sobre el proyecto en el que está trabajando. Puede compilar y recorrer bien el código con él deshabilitado (a primera vista).

Eliminar, renombrar o bloquear la creación del proceso vshub con AV interrumpirá el seguimiento del rendimiento que mencioné. La pérdida de vshub mejora la privacidad al usar Visual Studio, ya que se comunica con vortex.data.microsoft.com, pasando información como los GUID de soluciones y proyectos junto con la identificación de su cuenta.A continuación se muestra una captura de pantalla del violinista que intercepta los datos HTTPS.

Bloquear el acceso a nivel de red ayuda con la privacidad, pero no resolverá su problema de uso de recursos. Consideraría esto último como una sobrecarga normal de ejecutar Visual Studio.

Para su caso de uso, probablemente pueda salirse con la suya con alguna forma de deshabilitación (bloquear la creación de instancias con su software antivirus es probablemente el enfoque más limpio), pero puede admitir funcionalidades adicionales que aún no he descubierto.

Datos comunicados a Microsoft, a través de vshub

Frederik
fuente
8

Para aquellos de ustedes que desean preservar VSHub y aún poder usar Fiddler, pueden configurar un Filtro en Fiddler con la siguiente configuración:

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

EDITAR: probablemente también desee agregar esto:

Hosts > Show only the following Hosts: =
localhost;

para omitir vortex.data.microsoft.cometc. peticiones

filtro vshub en Fiddler

Ilan
fuente
4

De acuerdo con un Microsoft Program Manager comentando en el Visual Studio Blog comentando en el Visual Studio Blog , se usa para admitir la comunicación de múltiples herramientas a través del conjunto VS. Dado lo complicado que es Visual Studio, no recomendaría nada tan duro como la respuesta de xakepp35 (eliminarlo).

En mi Win10 x64 con VS2015 en ejecución, durante la depuración, hay tres procesos y el uso total de RAM es inferior a 150 MB en total. A menos que esté agitando páginas en una máquina con RAM mínima, no hay mucho de qué preocuparse. Dado que está ejecutando VS2015, supongo que tiene 150 MB de sobra.

Hasta que o a menos que encuentre documentación que muestre explícitamente qué es compatible con el Hub, le recomiendo que lo deje. En mi experiencia, las instalaciones de Visual Studio son demasiado fáciles de romper.

sraboy
fuente
3
En mi máquina después de un día de trabajo, este programa ocupa 580MB. Incluso después de cerrar VS2015, este programa no se detiene. Creo que esto es bastante RAM para un programa que admite funciones (nube, udpates) que no uso.
0xBADF00D
Esto también parece depender del tamaño de su solución también.
Ed DeGagne
1
Bueno, el problema es que simplemente crece sin límites. Apenas instalé 2015 ayer y esta mañana tuve un misterio de 7 GB para investigar. Solo tonto. Herramientas de diagnóstico deshabilitadas.
Nick Westgate el
3

Una de las razones por las que Visual Studio intenta conectarse en línea parece también que, de forma predeterminada, busca actualizaciones en línea para Visual Studio y sus extensiones.

Además, Visual Studio incluye una versión de Internet Explorer dentro de su núcleo para que la página web (y la extensión) se puedan descargar en vivo. En otras palabras, también actúa como un navegador y, como todos sabemos ... Microsoft está muy interesado en verificar los datos de sus usuarios y el uso de su software.

Hay muchas funciones en línea en el menú HerramientasOpciones . (Para ser honesto, prefiero MonoDevelop incluso con sus defectos).

usuario3345048
fuente
2
Recientemente cambié a Sublime Text, no puedo seguir el ritmo de VS que desacelera mi máquina.
Reda Lahdili
1
Estamos a punto de convertir todos nuestros servicios web basados ​​en .NET en Java porque las herramientas de Microsoft son simplemente terribles.
enamorado
2

Es necesario para BrowserLink, la ventana de Diagnóstico, Intellitrace.

A veces necesito estas características, pero solo tengo 8 GB de RAM. Por lo general, tengo un uso del 90-95%, así que creé un archivo por lotes para activar y desactivar VSHub cambiando el nombre de la carpeta y creando un enlace simbólico a una carpeta vacía con archivos ficticios.

Cierre Visual Studio antes de ejecutarlo.

@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

En mi máquina, VSHub y sus compinches suelen usar:

  • VsHub.exe: 50 MB inicialmente. 250-350 MB después de más de 2 horas
  • Microsoft.VsHub.Server.HttpHost.exe: 200 MB inicialmente. 350 + MB después de 1+ hrs
  • Microsoft.VsHub.Server.HttpHostx64.exe: 320 MB inicialmente. 550 + MB después de 1+ hrs

Esto libera más de 1 GB de RAM con casi ninguna funcionalidad perdida.

Derek Ziemba
fuente
0

"VsHub" debe renombrarse a "SmartMobileCloud"; así de estúpido es de moda. Lo dejé; mi edición / depuración de VisualC no se vio afectada.

Después de instalar VisualStudio, elimine las extensiones no utilizadas, realice la corrección "C: \ Archivos de programa (x86) \ Archivos comunes \ Microsoft Shared \ - Deleted - VsHub" ... y coloque un archivo de texto "VsHub" (sin ".TXT" ), por lo que nada puede recrear la carpeta.

Jeff Relf
fuente