Bagaimana cara menonaktifkan VsHub.exe di baki sistem?

138

Mulai Visual Studio 2015 juga meluncurkan dua executable lainnya:

VsHub.exe

dan

Microsoft.VsHub.Server.HttpHost.exe

Keduanya membutuhkan ruang yang cukup besar di task manager.

Bagaimana saya bisa menghapus opsi "Visual Studio Hub" ini? Saya tidak menggunakan salah satu fitur Visual Studio 'terkemuka', termasuk satu Visual Studio Hub.

Reda Lahdili
sumber
15
Yah saya benar-benar tidak menggunakan Visual Studio untuk sesuatu selain mengedit kode. Saya menggunakan Unity dan kompilasi dilakukan oleh kompiler bawaan, jadi semua yang ingin saya lihat di VS adalah editor teks mewah. Juga, saya tidak ingin menggunakan Kode VS karena tidak memiliki penyelesaian otomatis untuk Unity dan Anda tidak dapat membuat tema khusus Anda sendiri.
Reda Lahdili
2
@RedaLahdili Apa yang akhirnya Anda lakukan? Kedua file berjalan bahkan ketika saya tidak menjalankan VS2015.
prettyvoid
2
Kasus Anda sepertinya lebih buruk dari milikku! Sayangnya saya belum menemukan solusi. Mereka benar-benar perlu melakukan sesuatu tentang ini. Terkadang VSHub mengambil lebih banyak memori daripada VS itu sendiri. uggh ... Terus beri tahu kami semua orang jika Anda menemukan solusi.
Reda Lahdili
1
Solusi lain adalah: stackoverflow.com/questions/31904929/…
oguzh4n
1
Microsoft.VsHub.Server.HttpHostx64.exe memiliki kebocoran memori yang menyebabkan windows 10 saya dimatikan. Lihat: connect.microsoft.com/VisualStudio/feedback/details/1610160/…
Olivier Jacot-Descombes

Jawaban:

131

Saya pikir saya akan mencoba menjelaskan VS Hub dan apa maksudnya. Saya bekerja untuk Microsoft.

Seperti yang disebutkan oleh sraboy, VS Hub adalah sebuah host layanan out-of-proc yang digunakan oleh Visual Studio (dan produk berbasis-VS lainnya seperti Blend) untuk mendukung komunikasi multi-alat, respons yang lebih baik dalam devenv (VS), dan memungkinkan layanan tertentu untuk memperpanjang melewati masa proses pemijahan. Serangkaian layanan yang saat ini dihosting di VS Hub mencakup banyak item yang dipanggil dalam jawaban lain, seperti pengaturan roaming, pemrosesan petak besar data ETL yang diberikan dalam perkakas diagnostik, beberapa pelaporan telemetri, dan perpanjangan pembaruan otomatis dan notifikasi. Serangkaian layanan itu kemungkinan besar akan tumbuh di masa depan, jadi meskipun tidak ada layanan yang tampaknya diperlukan saat ini, layanan tambahan akan di-host di sana di masa mendatang (yaitu palu yang cukup besar untuk menonaktifkan vshub.

Dalam hal seumur hidup, proses vshub dan host (mis. Microsoft.VsHub.Server.HttpHost (64) .exe) dapat tetap berjalan setelah devenv.exe ditutup. Namun, mereka seharusnya tidak terus berjalan tanpa batas. Dalam kebanyakan kasus, proses ini akan berakhir dalam ~ 5 menit dari contoh terakhir dari penutupan shell berbasis VS. Jadi jika Anda memiliki instance VS running (devenv.exe) dan instance Blend running (blend.exe), dan Anda mematikan devenv.exe, vshub dan proses host terkait akan tetap berjalan. Jika Anda kemudian mematikan blend.exe, vshub dan proses host terkait masih akan berjalan. Namun, setelah sekitar 5 menit sejak itu, proses tambahan itu akan dimatikan. Jika Anda memulai instance lain dari devenv.exe dalam jendela 5 menit itu, maka vshub dan proses host terkait tidak akan berakhir,

Dari segi sumber daya, proses vshub.exe itu sendiri harus selalu relatif fleksibel. Jika ia menjadi besar, maka itu adalah bug dan saya ingin mengetahuinya sehingga kami dapat memperbaikinya :-) Proses host, di sisi lain, bisa menjadi sangat besar tergantung pada layanan yang di-host. Secara khusus, perangkat diagnostik berfungsi dengan memproses ETL. ETL bisa sangat, sangat, besar, dan karena itu, tuan rumah dapat menggunakan banyak sumber daya. Tim diagnostik sedang mencari cara untuk mengurangi itu, tetapi untuk saat ini, menutup jendela alat diagnostik saat Anda tidak membutuhkannya akan membantu mengurangi masalah.

Dalam hal konektivitas online, ada tiga sumber utama dalam rangkaian layanan yang di-host saat ini (catatan, ini akan berubah dari waktu ke waktu). Pertama, seperti yang disebutkan user3345048, layanan yang mendeteksi dan pembaruan otomatis berjalan dalam proses itu. Opsi yang mengontrol komunikasi itu ada di Alat | Opsi | Lingkungan | Ekstensi dan Pembaruan (lihat dua kotak centang pertama). Kedua, pengaturan roaming berjalan sebagai layanan di VS Hub. Pengaturan yang mengontrol perilaku ini ada di Tools | Opsi | Lingkungan | Pengaturan yang disinkronkan (atau lebih holistik, jika Anda tidak masuk ke akun personalisasi di sudut kanan atas VS). Akhirnya, VS Hub melaporkan telemetri. Volume data ini dapat dikurangi secara signifikan melaluiBantuan | Opsi Umpan Balik Pelanggan | Pengaturan ... item menu. Anda juga dapat membaca tentang jenis telemetri yang dikumpulkan Microsoft dan bagaimana telemetri digunakan di lokasi itu.

Anson Horton
sumber
40
Anson - Saya memiliki Visual Studio 2015 dengan rilis RTM 1 pada Windows 7. Jika saya membuka Fiddler4, saya melihat ratusan atau lebih panggilan per detik ke localhost / vshub / sameGuidHereOverAndOver. Ini benar-benar tidak dapat diterima - saya tidak tahu apa yang menurut vshost.exe sedang dilakukan, tetapi itu benar-benar hilang. Saya dapat membunuh prosesnya dan itu masih terjadi. Mungkin harus kembali ke 2013 ...
Mario
4
@ Mario - seperti yang Anda lihat vshub sering bertindak sebagai server http lokal, jadi Anda diharapkan akan melihat beberapa lalu lintas setiap kali berjalan (http bertindak sebagai IPC). 100-an permintaan per detik untuk setiap periode waktu yang berkelanjutan jelas merupakan bug. Anda dapat memeriksa log di% temp% \ VsHub yang akan menunjukkan jika ada pengecualian yang dilemparkan, dan jelas Anda sudah menemukan cara untuk memeriksa lalu lintas. Hal terbaik untuk dilakukan adalah melaporkan ini sebagai masalah melalui connect.microsoft.com karena akan memberi kami saluran untuk mengumpulkan log dan semacamnya dan mencoba memastikannya diperbaiki
Anson Horton
28
Berikut adalah Microsoft.VsHub.Server.HttpHost64.exe sedang "lentur" pada mesin saya - imgur.com/DKvSNqf - itu adalah 1GB RAM yang menjadi puncaknya. Bagus.
sh1rts
7
@ sh1rts - Saya mengerti frustrasi Anda. Komentar "lithe" yang saya buat di atas ditargetkan pada vshub.exe. Microsoft.VsHub.Server.HttpHost64.exe adalah proses host yang menjalankan berbagai layanan, termasuk beberapa yang bisa sangat intensif memori (misalnya alat diagnostik yang dimulai ketika Anda menggunakan F5, atau jika Anda secara eksplisit memilih untuk melakukan memori atau analisis responsif lainnya. ). Anda dapat mencoba beberapa matikan yang saya sebutkan di atas untuk menonaktifkan beberapa layanan tersebut untuk melihat apakah itu membantu - tetapi secara umum kami akan bekerja untuk mengurangi overhead memori keseluruhan di versi mendatang.
Anson Horton
17
Jadi apa cara untuk berhenti melihat ratusan permintaan / vshub / GUID di Fiddler. Ini membuat tidak mungkin untuk men-debug klien HTTP apa pun di Visual Studio, karena untuk setiap langkah saat debugging, saya melihat 10+ permintaan di fiddler dan permintaan yang saya minati hilang :-(. Selain itu, cara inter-proses yang sangat tidak efisien secara serius komunikasi untuk membuat permintaan HTTP di localhost
Đonny
82

Sesuatu yang tidak ada yang disebutkan di atas ...

Menurut log firewall saya, VsHub.exe, Microsoft.VsHub.Server.HttpHost.exe, dan Microsoft.VsHub.Server.HttpHostx64.exe semua mencoba berkomunikasi secara online .

Alamat yang saya lihat di mana ada upaya koneksi keluar termasuk 191.236.194.164 (Microsoft Azure, Wichita Kansas) dan 23.102.160.172 (Microsoft Azure, Redmond Washington).

Saya menyadari perangkat lunak "modern" seharusnya terintegrasi dengan cloud, tetapi ...

Sebagai orang yang tidak memerlukan apa pun dari server Microsoft Azure, dan yang secara sah peduli dengan privasi dan tidak membocorkan bagian apa pun dari apa yang saya kerjakan ke dunia luar, saya benar-benar ingin A) memiliki cara untuk memilih untuk tidak untuk menjalankan program ini, atau B) disediakan pengaturan untuk membatasi obrolan mereka secara online. Ya, firewall memblokir koneksi, tapi itu pilihan terakhir.

Hanya kotak centang sederhana, "[] Hubungi Server Microsoft Azure" akan menyenangkan. Apakah itu berarti tidak menjalankan program yang dipermasalahkan atau hanya membuatnya tidak membuat koneksi online tidak menjadi konsekuensi bagi saya. Saya kira dari perspektif sumber daya, yang pertama akan lebih baik karena akan menggunakan lebih sedikit sumber daya.

Sebagai aturan saya tidak akan mengusulkan untuk mengubah file dalam kumpulan file aplikasi yang diinstal, tetapi karena saya memiliki lingkungan mesin virtual di mana saya dapat menguji perubahan pada Visual Studio 2015 tanpa banyak konsekuensi (snapshot sangat bagus), saya mencoba mengubah izin (untuk menghapus warisan kemudian melarang Baca dan Jalankan untuk Pengguna) pada tiga file ini.

Voila, tidak ada lagi aplikasi VsHub yang berjalan, mencoba menghubungi sistem jarak jauh.

Visual Studio muncul tepat. Saya tidak melihat sisi negatifnya di sini.

-Noel

NoelC
sumber
Kelemahan: Anda sendiri tidak dapat memodifikasi file ini lagi.
harrymc
Tidak yakin apa maksudmu, harrymc. Bisakah Anda lebih spesifik? Apakah Anda berbicara tentang masalah mengakses izin? Sebagai administrator Anda masih menguasai setiap file di komputer Anda, meskipun Microsoft terkadang melempar kunci inggris. Tetapi jika Anda memahami cara kerja izin, Anda dapat melakukan apa pun yang Anda inginkan. File-file itu ada di komputer ANDA. Jika Anda bermaksud telah menghapus izin Anda sendiri, saya mengucapkannya dengan buruk. Maksud saya, saya MENGHAPUS izin, tidak menambahkan pengaturan Tolak. Saya seharusnya menggunakan kata "Disallow".
NoelC
Setelah menolak diatur, untuk mengakses kembali izin seseorang harus terlebih dahulu menetapkan dirinya sebagai pemilik file.
harrymc
Baik. JANGAN centang kotak di kolom "Tolak". Sebaliknya, UNCHECK "Baca & laksanakan" di bawah kolom Perbolehkan.
NoelC
2
Berdasarkan pengalaman post-Update 3 saya, hanya mengubah izin pada vshub.exe untuk menghapus akses eksekusi tampaknya sudah cukup.
NoelC
61

Saya menggunakan Windows 7 x64 dengan Visual Studio Express 2015. Saya telah menghentikan proses menjengkelkan dengan Task Manager. Kemudian saya telah menghapus folder C: \ Program Files (x86) \ Common Files \ microsoft shared \ VsHub . Operasi ini menyelesaikan masalah, tetapi memerlukan hak administrator.

xakepp35
sumber
38
Suara positif dari saya, karena Tim DevTools benar-benar perlu berhenti menjalankan semua omong kosong yang mengganggu ini di latar belakang sepanjang waktu. Juga mengikuti saran untuk menghapus folder VsHub karena MS tidak akan memberi saya cara bersih untuk menghapus instalasi omong kosong ini.
jerhewet
2
Ini bekerja untuk saya, saya menghapus folder itu dan VsHub tidak berjalan di task manager lagi. Meskipun saya tidak akan menandai ini sebagai solusi untuk pertanyaan ini, saya yakin ada cara yang lebih bersih untuk menonaktifkan VsHub.
Reda Lahdili
18
Saya telah menemukan solusi yang lebih loyal. Ganti nama folder VsHub menjadi _VsHub , alih-alih dihapus. Ini memiliki keuntungan memutar balik, jika Anda benar-benar takut :)
xakepp35
4
Selama debugging, alat diagnostik yang menunjukkan tampilan langsung CPU & penggunaan memori dari proses sedang tidak berfungsi.
Frederik
4
Saya mengalami masalah dengan VsHub dan HttpHostx64 ketika saya mencoba untuk mengubah linq lama ke file desainer sql di proyek lama. Setelah membuka perancang, VS akan mengunci dan tidak responsif. Procmon menunjukkan banyak aktivitas dari HttpHostx64.exe. Saya telah mengganti nama folder c: \ Program Files (x86) \ Common Files \ Microsoft Shared \ VsHub \ menjadi "VsHub (omong kosong)". Desainer linq-to-sql saya sekarang dimuat seperti biasa. :)
Nick
30

Seperti yang disebutkan xakepp35, Anda dapat menghapus folder C: \ Program (x86) \ File Umum \ microsoft shared \ VsHub . Namun, saya menduga bahwa pembaruan atau penginstal lain kemungkinan akan mencoba membuatnya kembali.

Apa yang saya lakukan adalah mematikan semua proses VS. Ambil kepemilikan folder (sebagai admin) dan kemudian RAR (ZIP) folder dan akhirnya menghapusnya (RAR sebagai cadangan jika saya perlu file kembali). Milik saya pada SSD jadi saya ingin menghemat ruang. Kalau tidak, Anda bisa mengganti nama dan membiarkannya.

Kemudian untuk mencegahnya dibuat lagi, saya menggunakan trik Win 3.1 lama. Buat file teks bernama VsHub.txt di C: \ Program Files (x86) \ Common Files \ microsoft shared folder. Kemudian ganti nama file teks dan lepaskan ekstensi .txt meninggalkan file bernama VsHub . Karena OS tidak dapat membuat folder dan file dengan nama yang sama di lokasi yang sama, poof, tidak dapat diakses sebagai folder untuk VS dan installer / updater yang tidak dapat diakses dan di masa mendatang sebagai folder. Kemudian jika Anda perlu mengizinkan akses lagi di masa depan, cukup tambahkan .txt kembali pada file dan pergilah.

Wolfie
sumber
8
Solusi yang diusulkan ini bekerja dengan baik untuk saya. Ini menghilangkan banjir permintaan vshub di Fiddler dan kinerja keseluruhan VS secara substansial ditingkatkan. Microsoft, jika Anda membaca: lebih sedikit lebih banyak - bloatware adalah hal terburuk yang dapat Anda biarkan terjadi pada perangkat lunak produktivitas.
Shaun
Hanya untuk memastikan bahwa tidak ada yang mendapatkan ide liar tentang menghapus file itu untuk memungkinkan pembuatan direktori, Anda dapat menambahkan ACL ke sana dari klik kanan / properti / tab keamanan yang tidak melakukan apa pun selain menolak semua orang menghapus hak istimewa pada file tersebut. .
dgnuff
Saya mengikuti tip ini dan saya mendapat speed pickup yang luar biasa. Komputer saya rentan terhadap antrian disk yang terkadang berarti layar splash Visual Studio ada selama 5 menit (tidak berlebihan). Terima kasih banyak atas ini.
S Meaden
22

Ini tampaknya menjadi pisau komunikasi Tentara Swiss untuk studio visual sebagai jawaban per @ sraboy. Ini digunakan selama debugging untuk menampilkan informasi kinerja tentang proses yang sedang berjalan, tetapi juga untuk mengirim telemetri ke Microsoft tentang proyek yang sedang Anda kerjakan. Anda dapat membangun dan melangkah melalui kode baik-baik saja dengan itu dinonaktifkan (sekilas).

Menghapus, mengganti nama, atau memblokir pembuatan proses vshub dengan AV akan merusak penelusuran kinerja yang saya sebutkan. Kehilangan vshub meningkatkan privasi saat menggunakan Visual Studio saat berkomunikasi dengan vortex.data.microsoft.com, menyampaikan informasi seperti solusi & proyek GUID bersama id akun Anda. Di bawah ini adalah tangkapan layar dari fiddler yang mencegat data HTTPS.

Memblokir akses di tingkat jaringan membantu dengan privasi, tetapi itu tidak akan mengatasi masalah penggunaan sumber daya Anda. Saya akan mempertimbangkan yang terakhir sebagai overhead normal menjalankan Visual Studio.

Untuk kasus penggunaan Anda, Anda mungkin dapat menghilangkan beberapa bentuk penonaktifan (memblokir instantiasi dengan perangkat lunak antivirus Anda mungkin merupakan pendekatan terbersih), tetapi mungkin mendukung fungsi tambahan yang belum saya temukan.

Data dikomunikasikan ke Microsoft, melalui vshub

Frederik
sumber
8

Bagi Anda yang ingin melestarikan VSHub dan masih dapat menggunakan Fiddler Anda dapat mengatur Filter di Fiddler dengan pengaturan berikut:

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

EDIT - Anda mungkin ingin menambahkan ini juga:

Hosts > Show only the following Hosts: =
localhost;

untuk menghilangkan vortex.data.microsoft.comdll .. permintaan

Filter vshub di Fiddler

Ilan
sumber
4

Menurut Manajer Program Microsoft mengomentari Blog Visual Studio mengomentari Blog Visual Studio , itu digunakan untuk mendukung komunikasi multi-alat di seluruh VS suite. Mengingat betapa rumitnya Visual Studio, saya tidak akan merekomendasikan sesuatu yang sekeras jawaban xakepp35 (menghapusnya).

Pada Win10 x64 saya dengan VS2015 berjalan, saat debugging, ada tiga proses dan total penggunaan RAM kurang dari 150MB total. Kecuali jika Anda meronta-ronta mesin dengan RAM minimal, itu tidak perlu terlalu dikhawatirkan. Mengingat Anda menjalankan VS2015, saya kira Anda memiliki 150MB untuk cadangan.

Sampai atau kecuali Anda menemukan dokumentasi yang menunjukkan secara eksplisit apa yang didukung oleh Hub, saya sarankan untuk membiarkannya. Dalam pengalaman saya, penginstalan Visual Studio terlalu mudah untuk dihancurkan.

sraboy
sumber
3
Di komputer saya setelah seharian bekerja, program ini membutuhkan 580MB. Bahkan setelah saya menutup VS2015, program ini tidak berhenti. Saya pikir ini cukup banyak RAM untuk program yang mendukung fitur (cloud, udpates) yang tidak saya gunakan.
0xBADF00D
Ini juga tampaknya tergantung pada ukuran solusi Anda juga.
Ed DeGagne
1
Masalahnya adalah ia tumbuh tanpa batas. Saya hanya menginstal 2015 kemarin dan pagi ini memiliki misteri 7GB untuk diselidiki. Bodoh sekali. Alat diagnostik yang dinonaktifkan.
Nick Westgate
3

Salah satu alasan mengapa Visual Studio mencoba untuk terhubung secara online tampaknya juga, secara default, mencari online untuk pembaruan untuk Visual Studio dan ekstensinya.

Juga, Visual Studio menyertakan versi Internet Explorer di dalam intinya sehingga halaman web (dan ekstensi) dapat diunduh secara langsung. Dengan kata lain, itu bertindak sebagai browser juga dan seperti yang kita semua tahu ... Microsoft sangat tertarik untuk memeriksa data penggunanya dan penggunaan perangkat lunaknya.

Ada banyak fungsi online di menu ToolsOptions . (Sejujurnya, saya lebih suka MonoDevelop bahkan dengan kekurangannya.)

pengguna3345048
sumber
2
Saya baru-baru ini beralih ke Sublime Text, tidak bisa mengimbangi VS memperlambat mesin saya.
Reda Lahdili
1
Kami akan mengubah semua layanan web berbasis .NET kami menjadi Java karena perkakas Microsoft benar-benar mengerikan.
crush
2

Ini diperlukan untuk BrowserLink, jendela Diagnostics, Intellitrace.

Saya kadang-kadang membutuhkan fitur ini, tetapi hanya memiliki 8 GB RAM. Saya biasanya menggunakan 90-95% jadi saya membuat file batch untuk mengaktifkan dan menonaktifkan VSHub dengan mengganti nama folder dan membuat symlink ke folder kosong dengan file dummy.

Matikan Visual Studio sebelum dijalankan.

@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

Di mesin saya VSHub dan kroninya biasanya menggunakan:

  • VsHub.exe: 50 MB pada awalnya. 250-350 MB setelah 2+ jam
  • Microsoft.VsHub.Server.HttpHost.exe: awalnya 200 MB. 350+ MB setelah 1+ jam
  • Microsoft.VsHub.Server.HttpHostx64.exe: 320 MB pada awalnya. 550 + MB setelah 1+ jam

Ini membebaskan lebih dari 1 GB RAM dengan hampir tidak ada fungsi yang hilang.

Derek Ziemba
sumber
0

"VsHub" harus diganti namanya menjadi "SmartMobileCloud"; itulah betapa bodohnya Trenden. Saya membuangnya; Pengeditan / debugging VisualC saya tidak terganggu.

Setelah menginstal VisualStudio, hapus ekstensi yang tidak digunakan, lakukan perbaikan "C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ - Deleted - VsHub" ... dan letakkan file teks "VsHub" di sana (no ".TXT" ), jadi tidak ada yang bisa membuat ulang folder.

Jeff Relf
sumber