Debugging / loading Visual Studio sangat lambat

505

Aku kehabisan akal. Visual Studio biasanya sangat lambat melakukan debug atau hanya memuat ("mulai tanpa debug") situs ASP.NET MVC saya. Tidak selalu: pada awalnya, proyek akan memuat bagus dan cepat, tetapi begitu mereka memuat lambat, mereka akan selalu memuat lambat setelah itu. Saya bisa menunggu 1-2 menit atau lebih.

Pengaturan saya:

Saya menggunakan Visual Studio 2012 Express , saat ini, tapi saya punya masalah yang sama di Visual Studio 2010 Express juga. Solusi saya disimpan di drive jaringan; khususnya, Dokumenku dialihkan ke drive jaringan, jika itu penting. (Seharusnya tidak. Ada waktu di mana situs saya memuat sangat cepat di bawah pengaturan ini.)

Saya memuat di Internet Explorer 9 biasanya, tetapi masalah yang sama terjadi di Firefox.

Ini dapat terjadi di setiap proyek ASP.NET MVC yang saya kerjakan, dan tampaknya berputar dengan memiliki DisplayTemplates, yang dilakukan semua proyek ASP.NET MVC saya. Dan itu semua C # dan Razor, jika itu penting.

Gejala:

Sistem akan memuat ratusan simbol saya kali. Pada dasarnya, berikut ini, tetapi ada setidaknya 300 baris seperti itu, masing-masing dengan file DLL yang sangat berbeda untuk CSHTML yang sama:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.

Di atas, saya punya tiga DisplayTemplates: "Kontak", "Location", dan "StatusCode". Tampaknya IIS memuat simbol dua kali untuk setiap kali displaytemplate dipanggil. Jadi, jika saya menampilkan tabel 100 entri yang memanggil ketiga templat display ini, 600 simbol yang berbeda dimuat.

Ini juga bukan operasi cepat. Melihat dalam file log yang dihasilkan IIS, dibutuhkan sekitar 200 ms untuk setiap simbol dimuat. Jadi, keterlambatan super panjang.

Apa yang saya coba:

  • Versi Debug atau Rilis, tidak masalah.
  • Menempatkan proyek saya pada implementasi IIS penuh pada server web menjalankannya sangat cepat tanpa masalah.
  • Cassini, IIS Express 7.5, dan IIS Express 8.0 semua memiliki masalah.
  • Hapus Semua Breakpoint tidak melakukan apa pun.
  • Bersihkan Solusi , atau menghapus .suo juga tidak melakukan apa pun.
  • Jika saya memperbaiki IIS Express, atau menghapus My Docs\IISExpressfolder, atau memperbaiki / menginstal ulang Visual Studio → masalah MUNGKIN pergi, tetapi hanya untuk sementara waktu, sebelum kembali segera.

Setiap saran sangat dihargai.

Untuk menjawab lebih banyak pertanyaan, ya mesin saya pasti memiliki tenaga kuda. Yang menyebalkan adalah bahwa proyek yang sama, dengan TIDAK ADA yang diubah, dapat memuat dengan sangat cepat kadang-kadang, biasanya setelah saya memperbaiki IIS Express dan menghapus My Docs\IISExpressfolder. Akhirnya "sesuatu" terjadi dan perlu 2 menit untuk memuat lagi. Apa yang saya kerjakan bukanlah proyek yang rumit. Tidak ada pustaka atau dependensi eksternal, dan VS.NET saya tidak memiliki add-ons apa pun.

Sebagai catatan, mesin ini memiliki Symantec Endpoint Protection, yang memiliki sejarah menyebabkan kekacauan. Tetapi menonaktifkannya secara langsung (sebaiknya menjadi administrator) tidak memperbaiki masalah.

Saya punya teori saat ini. Saya pikir ini semua karena saya mengerjakan folder yang dialihkan dari jaringan. Sementara debugger sedang melewati ratusan baris "simbol yang dimuat", saya berhenti untuk melihat apa yang dilakukannya. Itu dalam kode saya, memuat DisplayTemplate yang saya miliki. Melangkah ke output template ini:

Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'

Sepertinya Visual Studio mengkompilasi ulang displaytemplate saya setiap kali dipanggil, yang sekali lagi, ratusan kali. Teori saya adalah bahwa Visual Studio mengkompilasi file, menyimpannya ke jaringan berbagi, jaringan berbagi entah bagaimana waktu baru di atasnya, dan Visual Studio kemudian berpikir file telah berubah dan dengan demikian Visual Studio mengkompilasi ulang lagi. Hanya sebuah teori; Saya benar-benar tidak tahu.

Untuk satu, tampaknya saya memiliki file offline (ini adalah komputer desktop di kantor; Saya tidak peduli). Saya akan menonaktifkan, reboot, dan coba lagi besok.

Plus, memindahkan proyek saya, seperti, ke C lokal: memperbaikinya. Ini memuat sangat cepat. Tapi ini tidak ideal di lingkungan kerja. Saya kehilangan Versi Sebelumnya, kode saya tidak didukung sama sekali kecuali saya menyalinnya secara manual, dan tidak lagi dibagikan kepada siapa pun.

Saya bisa lakukan dengan menyalinnya bolak-balik dari C ke jaringan berbagi, jika itu terjadi. Jauh lebih menjengkelkan untuk menunggu dua menit untuk setiap pemuatan halaman.

Ber'Zophus
sumber
Saya punya banyak pertanyaan: Bagaimana dengan mesin tempat Anda menjalankannya? Apakah itu memiliki tenaga kuda yang cukup untuk apa yang Anda coba lakukan? Apakah Anda memiliki plugin pihak ketiga? Jenis antivirus apa yang Anda miliki?
Fickle Panther
1
Memperbarui pertanyaan saya dengan info lebih lanjut.
Ber'Zophus
Menghapus file offline sepertinya hanya perbaikan. Itu bekerja dengan baik untuk sementara waktu, kemudian masalah kembali. Tapi saya punya jawaban lain yang mungkin. Memperbarui solusi saya.
Ber'Zophus
Yang kedua pertanyaan antivirus, saya punya masalah besar dengan ThreatFire berjalan. Untuk sementara mematikannya mempercepat debugger setidaknya untuk saya ratusan kali lipat. Mematikan AV utama saya (Avast!) Hanya sedikit membantu.
Jon Coombs
@JohnSaunders Apakah Anda mencoba menjalankannya dalam mode administrator ?: stackoverflow.com/questions/36322440/…
Robert Oschler

Jawaban:

650

Inilah cara saya memecahkan masalah "pemuatan simbol lambat" di Visual Studio 2012:

  • Pergi ke Alat -> Opsi -> Debugging -> Umum

  • Periksa tanda centang di sebelah "Aktifkan Just My Code".

  • Pergi ke Alat -> Opsi -> Debugging -> Simbol

  • Klik tombol "..." dan buat / pilih folder baru di suatu tempat di komputer lokal Anda untuk menyimpan simbol yang di-cache. Saya menamai milik saya "Symbol caching" dan menaruhnya di Documents -> Visual Studio 2012.

  • Klik "Muat semua simbol" dan tunggu hingga simbol diunduh dari server Microsoft, yang mungkin memerlukan waktu cukup lama. Perhatikan bahwa tombol Load allimbol hanya tersedia saat debugging.

  • Buang tanda centang di sebelah "Server Simbol Microsoft" untuk mencegah Visual Studio dari jauh menanyakan server Microsoft.

  • Klik "OK".

Mulai sekarang, pemuatan simbol harus jauh lebih cepat.

Perhatikan bahwa jika Anda membuat perubahan / unduhan ke majelis Microsoft, Anda mungkin perlu kembali ke kotak dialog Simbol dan "Muat semua simbol" lagi.

Zeb Kimmel
sumber
31
Tidak ada perbaikan untuk saya, saya takut. Ini akan menjadi solusi yang baik bagi mereka yang berputar di sekitar masalah dengan simbol Microsoft. Sayangnya bagi saya, masalah saya tampaknya berkisar pada simbol saya sendiri. Simbol-simbol itu sudah melakukan cache secara lokal, dan untuk beberapa alasan, mengkompilasi ratusan ubin hanya dalam satu halaman.
Ber'Zophus
8
terima kasih untuk tip ini satu masalah yang saya alami di sini adalah tombol beban semua simbol dinonaktifkan untuk saya ada ide?
Chris McGrath
14
@ChrisMcGrath coba tautan ini social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Btw terima kasih atas jawaban Anda
Bobby Tables
16
bahkan setelah mengikuti langkah-langkah Anda, tombol "Muat semua simbol" disembunyikan dan saya tidak bisa mengklik itu. Apa yang harus saya lakukan sekarang? Saya menggunakan VS Express 2012.
Himanshu Aggarwal
86
Berikut adalah solusi bagi mereka yang memiliki tombol. Muat semua simbol dinonaktifkan: Tombol hanya tersedia saat debugging.
Gwynnbleid1
114

Mematikan intelliTrace memperbaiki ini untuk saya.

Di Visual Studio, Alat -> Opsi -> IntelliTrace

Lalu, hapus centang pada kotak centang untuk "Enable IntelliTrace".

Nonaktifkan IntelliTrace di Visual Studio 2012

si tolol
sumber
2
Saya memiliki masalah ini ketika melangkah melalui salah satu unit test saya. Butuh sekitar 300 detik dengan intellitrace dihidupkan dan sekitar 14 detik ketika dimatikan. Perbaikan ini benar-benar bekerja untuk saya.
Paul Bullivant
2
Meningkatkan startup saya dari 25 detik menjadi 6. Saya pikir itu banyak membantu karena saya menjalankan banyak kode sendiri pada awal aplikasi
James Ellis-Jones
2
Sialan ... Dari 1 menit hingga 10 detik. Ini dipilih secara default di VS2012 Ultimate. Watch out guys
Kevin Cloet
7
Tidak dapat menemukan Intellitrace di Alat => Opsi. .. saya punya vsComunity 2015
shireef khatab
8
Di Visual Studio 2015, Intellitrace hanya ada di VS 2015 Enterprise Edition.
HK1
78

Tidak ada yang berhasil untuk saya, tetapi saya menemukan Breakpoint pada simbol yang telah dihapus. Sepertinya 2010 tergantung di sana. Untuk melihat apakah ini masalah Anda, lakukan debug-> windows-> breakpoints Jika ada di sana cukup hapus saja.

Saunders, menyebutkan dia memeriksa untuk itu tetapi tidak disebutkan dalam solusi untuk masalah ini. Mungkin pengetahuan umum untuk sebagian orang, tetapi tidak semua dari kita.

pengguna2144480
sumber
5
Saya mulai mengalami masalah ini di VS2010 secara tiba-tiba, dan memang, salah satu breakpoints saya yang menyebabkannya. Segera setelah saya menyelesaikan breakpoints saya, itu menjadi cepat lagi.
David Airapetyan
3
Wow..VS2012 merangkak, 5 menit hanya untuk membangun proyek sederhana. Bersihkan semua breakpoints dan cepat kembali, terima kasih !!
QFDev
1
Setelah membaca ini dan mengikuti apa yang Anda katakan, saya menemukan breakpoint yang entah bagaimana ditempatkan dalam kode XML dari salah satu file entitas edmx saya. Anda seorang pria / wanita.
JB06
Terima kasih banyak. Ini menyelesaikan masalah saya dengan kinerja VS2010 yang sangat lambat.
Vaibhav Patle
2
Ini juga berfungsi untuk masalah debugging lambat yang saya miliki di Visual Studio 2015.
purplecat
41

Saya menghapus folder "Temporary ASP.NET Files" dan memuat halaman localhost saya meningkat secara dramatis. Inilah path ...% temp% \ Temporary ASP.NET Files \

Shaun Kennedy
sumber
9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp adalah path dan folder "AppData" adalah folder tersembunyi
Shiva Naru
2
Saya menemukan 1GB omong kosong lama di sini .... hapus semuanya dan VS berjalan sedikit lebih baik. :)
RitchieD
29

Apakah Anda telah mengaktifkan FusionLog?

VisualStudio saya sangat lambat untuk memulai, membuka solusi, dan memuat simbol saat memulai debugging. Itu lambat hanya pada mesin saya, tetapi tidak pada mesin lain.

FusionLog menulis banyak hal log ke disk. Hanya menonaktifkannya di RegEdit menyelesaikan semuanya, pada kasus saya.

Ini adalah kunci FusionLog pada registri:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Periksa nilai ForceLog (1 diaktifkan, 0 dinonaktifkan).

rkawano
sumber
1
Uhmmm ... jawaban yang sangat bagus. Saya berada di kapal yang sama. Saya juga mengaktifkan FusionLogdulu dan lupa untuk menonaktifkannya. Sekarang men-debug ASP.NET MVCaplikasi jauh lebih cepat. Terima kasih Tuhan dan @rkawano. :)
Leniel Maccaferri
29

Saya mengalami masalah yang sama dan mencoba sebagian besar resolusi di atas. Cukup menghapus cache dan temp file akhirnya berfungsi untuk saya.

Coba hapus konten dari dua folder ini:

C:\Users\\{UserName}\AppData\Local\Microsoft\WebsiteCache

dan

C:\Users\\{UserName}\AppData\Local\Temp (khususnya folder iisexpress dan Temporary ASP.NET Files).

Ini dapat diatur agar terjadi secara otomatis saat masuk ke Windows dengan menambahkan file cmd ke C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupfolder dengan konten berikut:

rmdir C:\Users\\{username}\AppData\Local\Microsoft\WebsiteCache /s /q

rmdir C:\Users\\{username}\AppData\Local\Temp /s /q
aricons
sumber
Ini berhasil. Folder "AppData" adalah folder tersembunyi, untuk berjaga-jaga, seseorang tidak dapat menemukannya.
Shiva Naru
3
Ini adalah salah satunya! Ini berfungsi dengan sangat baik sehingga saya sekarang mewujudkannya secara otomatis ketika saya masuk ke Windows: Saya telah menambahkan file yang bernama DeleteVisualStudioCache.cmd ke C: \ Users \ {username} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Mulai dengan perintah berikut: rmdir C: \ Users \ {username} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {username} \ AppData \ Lokal \ Temp / s / q jeda
Graham Laight
25

Saya pikir saya akhirnya mungkin setidaknya tahu penyebabnya, meskipun bukan alasan mengapa. Ketika masalah mulai terjadi lagi, saya melihat banyak proses "conhost.exe" menjadi yatim piatu. Saya akan menutup Visual Studio dan mereka akan tetap terbuka. Mengakhiri tugas pada masing-masing dari mereka akhirnya, andal memecahkan masalah. [semoga]

(Catat saja, conhost.exe bukan proses Visual Studio meskipun Visual Studio menggunakannya. Jadi, pengguna lain di luar sana mungkin memiliki aplikasi lain di luar sana yang menjalankan conhost.exe. Saya tahu mesin saya tidak yang mengapa saya dapat aman mengakhiri tugas mereka semua kecuali YMMV.)

Mengapa ini terjadi? Tampaknya terjadi ketika saya membuka lebih dari satu proyek sekaligus, yang cenderung sering saya lakukan, meskipun saya hanya membangun dan men-debug salah satu dari mereka setiap saat.


Sunting # 1 - Sayangnya ini bukan "peluru perak". Itu tidak selalu berhasil untuk saya. Biasanya, ketika segala sesuatunya berjalan lambat, saya hanya menutup semua sesi Visual Studio saya, kemudian pergi ke task manager dan mengakhiri semua contoh itu, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe dan MSBuild.exe Saya dapat menemukan

Biasanya, setelah itu, ketika saya me-restart proyek saya maka akan memuat dengan cepat. Tapi tidak selalu.

Sungguh saya pikir tindakan terbaik mungkin untuk tidak membangun & men-debug kode dari folder / jaringan yang dialihkan.


Sunting # 2 - Dua tahun kemudian, dan ini masih menjadi masalah bagi saya di Visual Studio Community 2013, tapi saya tampaknya setidaknya menemukan tugas pelakunya: Explorer.exe . Ya, siapa tahu. Saat saya mengakhiri tugas itu, tapi, halaman dimuat dalam satu detik.

Jika saya memiliki peramban file Windows Explorer yang terbuka ke drive jaringan saya yang dialihkan (yang sering kali karena itulah kode saya), masalah ini tampaknya terjadi. Menutup jendela tidak cukup, saya harus membunuh seluruh tugas Explorer.exe. Saya hanya bisa menebak apa yang dilakukannya ... menjadi gila dengan pegangan file?

Saya biasanya dapat menggunakan task manager untuk memulai tugas explorer.exe baru (saya hanya dapat mengambil begitu banyak alt-tabbing), dan Visual Studio akan terus memuat yang bagus dan cepat. Tetapi jika saya begitu banyak membuka Windows Explorer lagi, hampir selalu kembali ke super lambat.

Jadi, jika Anda memiliki pangsa jaringan yang dialihkan, cobalah. Itu pasti mengalahkan bekerja secara lokal.

Ber'Zophus
sumber
Saya tahu ini adalah berita yang agak lama, tetapi saya memiliki masalah yang sama. Tim saya menyarankan saya menggunakan skrip build yang menyalin file dari sumber lokal saya ke tempat file sedang dijalankan dan setiap kali saya menjalankan subrutin itu dengan sendirinya akan membuat conhost.exe dan tidak menutupnya. Setelah saya mengakhiri semua salinan ekstra itu berlari kilat lagi.
SomeoneRandom
22

Di atas semua solusi yang baik dan saya mencoba semuanya, tetapi punya solusinya di sini , yaitu untuk

Debug -> Delete All Breakpoints
Tahir Hassan
sumber
19

Bagi saya itu adalah IE 9.08.8112.16241. Segera setelah saya menggunakan Firefox atau Chrome, tidak ada debugging yang lambat dengan F10 atau F11. Saya tidak tahu apa masalahnya dengan IE, tetapi saya secara resmi membenci menggunakannya untuk pengujian sekarang.

Pembaruan: Saya telah mematikan semua add-on program IE dan kembali ke kecepatan penuh. Mengaktifkan mereka satu per satu mengungkapkan bahwa LastPass (dalam kasus saya) adalah pelakunya. Saya kira saya tidak bisa menyalahkan MS setelah semua.

DMadden51
sumber
2
Ini memperbaiki masalah saya juga. Saya mendapatkan penguncian sistem yang lengkap ketika mencoba melakukan debug, terutama ketika menggunakan jendela QuickWatch. Toolbar LastPass perlu dinonaktifkan. (IE 10.0.9200.16635)
mpeterson
1
Dan inilah mengapa saya suka StackOverflow. Tetapi LastPass harus memperbaikinya - Saya mengirim email kepada mereka sekarang untuk memberi tahu mereka. Ini jelas masih masalah dengan VS2013 dan IE 11. Dinonaktifkan LastPass dan kembali normal. Terima kasih kepada UserBlueOne untuk informasinya - dapat melanjutkan pekerjaan lagi.
Sean
1
FASAK LASTPASS! Keyboard saya benar-benar diisi ketika debugging di VS 2012 dengan aplikasi MVC saya. Dinonaktifkan LastPass dan semuanya terbang lagi. TERIMA KASIH! Terpilih.
Tony
Di Win8.x dengan IE jika Anda menggunakan akun MS untuk masuk, Anda dapat menyinkronkan info masuk Anda sehingga tidak perlu menggunakan LastPass tetapi masih memiliki (sebagian) manfaatnya, :)
Peter
Ini ... bekerja untuk saya. Harap dicatat bahwa sekarang 2019 --- enam tahun kemudian --- dan saya menggunakan plugin LastPass dengan Microsoft Edge.
Luke Maurer
15

Bagi saya, saya menerapkan tip ini yang pada dasarnya meningkatkan kinerja secara drastis dengan menambahkan dua atribut berikut ke tag kompilasi di web.config

<compilation ... batch="false" optimizeCompilations="true"> ... </compilation>

Apa yang dilakukan batch = "false"?

Itu membuat pra-kompilasi lebih selektif dengan mengkompilasi hanya halaman yang telah berubah dan membutuhkan kompilasi ulang

Apa sebenarnya yang dilakukan optimasiCompilations? Sumber

ASP.NET menggunakan kode hash per aplikasi yang mencakup keadaan sejumlah hal, termasuk folder bin dan App_Code, dan global.asax. Setiap kali domain aplikasi ASP.NET dimulai, ia memeriksa apakah kode hash ini telah berubah dari apa yang sebelumnya dihitung. Jika sudah, maka seluruh folder codegen (tempat kompilasi dan bayangan yang disalin) hidup dihilangkan.

Ketika optimisasi ini dihidupkan (melalui optimCompilations = "true"), hash tidak lagi memperhitungkan bin akun, App_Code, dan global.asax. Akibatnya, jika perubahan itu kami tidak menghapus folder codegen.

Referensi: Elemen kompilasi di msdn

Korayem
sumber
2
Terima kasih telah memposting. Ini sebenarnya lebih meningkatkan kinerja saya daripada jawaban yang diterima.
Kanapolis
@ Ber'Zophus dapatkah Anda mencoba yang ini dan membagikan hasil Anda kepada kami?
Korayem
kompilasi masuk ke dalam system.web
The One
1
Dikonfirmasi untuk bekerja untuk solusi besar dan aplikasi web (MVC) di dalamnya.
hQuse
12

Saya memiliki masalah kinerja pelaksanaan dengan debugging juga dan saya mencoba sangat banyak opsi debugger. Dalam kasus saya, kinerja besar tercapai ketika saya mengubah opsi ini:

Alat - Opsi - Debugging - Jendela Keluaran - (Pengaturan keluaran umum - Semua keluaran debug) - MATI

arkhivania
sumber
12

Dalam kasus saya, itu adalah .NET Reflector Visual Studio Extension (versi 8.3.0.93) dengan VS 2012. Debugging mengambil 10 detik untuk setiap Langkah Lebih (F10).

Di Visual Studio, buka Alat / Ekstensi dan Pembaruan ... dan nonaktifkan . NET Reflector Visual Studio Extension . Jangan lupa untuk me-restart Visual Studio.

Shamp00
sumber
Saya menemukan cara yang sulit bahwa ini menyebabkan masalah saya juga. Hanya setelah menonaktifkan ekstensi, saya melihat apakah ada orang lain yang memperhatikannya.
awj
11

Saya punya masalah dengan debugging Visual Studio lambat ketika debugger "Kode Asli" diaktifkan. Coba nonaktifkan itu.

Pada "Visual Studio 2012" pergi ke:

  1. Properti Proyek ->
  2. Web ->
  3. Debuggers (bagian bawah halaman). ->
  4. Nonaktifkan semua kecuali ASP.NET

Semoga ini bisa membantu.

Pertanyaan serupa: 1 , 2

Paulius Zaliaduonis
sumber
Milik saya sudah diatur untuk itu sayangnya, jadi tidak ada perbaikan untuk saya. Tapi bisa jadi saran yang baik untuk dicoba oleh orang lain.
Ber'Zophus
Itu memperbaikinya bagi saya!
Harvey
11

Dalam kasus saya itu

Tools/Options/Debugging/General/Enable JavaScript debugging for ASP.NET (Chrome and IE)

Setelah saya hapus centang ini, mulai debug saya dari 45-60 detik menjadi 0-5 detik.

toddmo
sumber
Yang ini adalah yang tercepat
Frank Myat Thu
10

Suatu kali, setelah pemadaman listrik, saya harus menghadapi masalah kelambatan yang sama setiap kali breakpoint dipukul atau Exception dilemparkan.

Saya memiliki samar-samar mengingat bahwa file "suo" (dalam direktori yang sama dengan file solusi "sln") dapat rusak dan membuat semuanya melambat.

masukkan deskripsi gambar di sini

Saya menghapus file "suo" saya dan semuanya baik-baik saja. Penghapusan file .suo tidak berbahaya dan hanya menyiratkan untuk membuat ulang tata letak windows saya plus proyek awal dan beberapa penyesuaian tidak penting lainnya.

Larry
sumber
Saya baru menyadari bahwa saya mendapat vs lambat setelah pemadaman listrik juga, terima kasih banyak atas jawaban ini.
Nic
Cari .vsfolder di versi Visual Studio yang lebih baru. Hapus itu.
CAD berbicara
10

Saya juga menghadapi masalah ini, di bawah ini adalah langkah-langkah yang saya lakukan dan selalu bekerja untuk saya:

  • Menghapus file .suo solusi.
  • Menghapus File ASP.NET Sementara (Anda dapat menemukannya di % WINDOW% \ Microsoft.NET \ Framework \\ Temporary ASP.NET Files )
  • Menghapus semua breakpoint dalam aplikasi.
Ninja culun
sumber
Restart membuatnya butuh 5x lebih lama dari biasanya, bukan 10x lebih lama dari biasanya. Menghapus file .suo membuatnya hampir instan startup. Terima kasih!
Shelby115
Sepertinya menghapus file .suo berfungsi. Apa alasan menghapus file ini membantu meningkatkan kinerja.?
SharpCoder
@SharpCoder .suo berisi banyak informasi seperti file mana yang saat ini terbuka di IDE, info debugger, pengaturan lokal, dll. Dan ketika file ini akan rusak, vs mulai mengonsumsi lebih banyak penggunaan CPU yang mengarah ke VS lambat dan bahkan bertahan beberapa kasus.
Geeky Ninja
9

Saya tidak tahu apakah Anda masih mengalami masalah ini, tetapi saya men-debug situs di Visual Studio dengan melampirkan debugger ke proses itu sendiri daripada membiarkan VS melakukannya untuk saya dan saya telah menemukannya untuk sangat meningkatkan waktu. Saya menggunakan ekstensi untuk VS yang disebut AttachTo dan saya punya artikel kecil tentang bagaimana saya menggunakannya di sini .

Saya harap ini membantu.

Andrew Davis
sumber
7

Masalah VS lambat saya diselesaikan dengan menonaktifkan Link Browser

masukkan deskripsi gambar di sini

Asin
sumber
Saya tahu komentar "Terima kasih" agak mengernyit di sini, tapi serius, TERIMA KASIH BANYAK. Satu perubahan ini mengambil program yang saya uji dari lambat ke titik tidak dapat digunakan untuk reaktivitas instan dasarnya. Anda mungkin membelikan saya sekitar satu atau dua jam per hari produktivitas hanya karena tidak harus menunggu untuk memuat barang
thnkwthprtls
@thnkwthprtls, sama-sama - salah satu pengaturan default MS yang harus Anda perhatikan :)
Salty
Tidak perlu menonaktifkannya, lihat jawaban saya => stackoverflow.com/a/34979659/2736742
A. Morel
6

Jika seseorang melihat perilaku ini keluar dari bidang kiri, periksa untuk memastikan Anda tidak memiliki breakpoint yang ditetapkan di web.config. Saya pasti telah menetapkan satu dengan klik mouse tersasar, dan itu benar-benar memperlambat semua operasi debug.

zmercier
sumber
Baru saja mengalami hal yang sama persis ini sendiri. Hampir membuatku gila. Mengapa breakpoint tidak aktif di file web.config benar-benar menghentikan debugging?
pleunv
6

Setelah menghabiskan sepanjang hari menunggu simbol untuk memuat selambat kecepatan kura-kura, pencampuran dan beralih di antara semua kombinasi yang mungkin: Hanya Kode Saya, simbol Caching , Intellitrace , Just-In-Time, proses pembunuhan , dll.

Solusi saya sebenarnya untuk menonaktifkan antivirus . Ya, Windows Defender memperlambat peluncuran proyek saya! Itu akan memeriksa semua dll sebagai Visual Studio meminta mereka dan memperlambat seluruh proses pemuatan simbol.

Saya harus mengatakan mesin kami memiliki spesifikasi hebat untuk mengkompilasi solusi dengan sangat cepat, jadi itu tidak pernah menjadi masalah. Kami kode dalam VS 2013 Ultimate.

IG Pascual
sumber
1
Ya, mematikan bek windows bekerja seperti pesona! Untuk mematikan Windows Defender secara permanen di Windows 10, atur Start = "4" (4 untuk dinonaktifkan) di jalur RegEdit HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal
Mengalami masalah dengan AVG antivirus. Adakah yang berhasil jika folder tertentu dapat dikecualikan dari antivirus untuk menyelesaikan masalah? Saya telah cache simbol, dan telah mengecualikan folder cache simbol - tetapi ini tidak membuat perbedaan.
Graham Laight
1
Anda dapat menyimpan AV dan mengecualikan dari analisis jalur dan target tertentu (VS dan proyek Anda)
Soleil - Mathieu Prévot
5

Mengosongkan cache simbol berhasil untuk saya.

Lihat: bilah menu / Alat / Opsi / Debugging / Simbol / Cache Simbol Kosong

Dimitri C.
sumber
3

Masalah serupa menghabiskan separuh hari saya dengan lebih baik!

Karena solusi untuk masalah saya berbeda dari yang dikatakan di sini, saya akan mempostingnya sehingga dapat membantu orang lain.

Milik saya adalah breakpoint. Saya memiliki breakpoint "Break at function" (yaitu alih-alih menekan F9 pada baris kode, kami membuatnya menggunakan jendela breakpoints) yang seharusnya berhenti di fungsi perpustakaan di luar proyek saya.

Dan saya telah "Gunakan Intellisense untuk memverifikasi nama fungsi " PERIKSA. (Info di sini .)

Ini melambat vs seperti neraka (proyek start-up dari 2 detik hingga 5 menit).

Menghapus titik istirahat memecahkannya untuk selamanya.

BuddhiP
sumber
3

Satu hal yang berhasil bagi saya setelah melakukan semua hal di atas adalah:
Di jendela Threads (Debug-> Windows-> Threads), atur Group by ke None. Ini hanya dapat dilakukan saat debugging.

Ini berdampak bahkan setelah menutup jendela itu.

David
sumber
3

Dalam Visual Studio:

Alat -> Opsi -> Debugging -> Simbol

Pilih "Hanya modul yang ditentukan". Klik tautan "tentukan modul", dan tambahkan modul kosong (klik tombol dokumen baru dan tekan OK).

MCS
sumber
3

Buka folder solusi di windows explorer, tutup studio visual, hapus file .suo dari windows explorer.

Sekarang buka proyek di visual studio, semoga debugger akan terpasang / terlepas dengan cepat.

Abdul Rauf
sumber
3

Bagi saya itu adalah breakpoints bersyarat. Tampaknya hal-hal itu benar-benar memperlambat.

ewolfman
sumber
1
Memang benar. Tetapi hanya jika baris yang mengandungnya benar-benar dieksekusi.
Peter Mortensen
3

Buka variabel lingkungan Anda dan cari kunci _NT_SYMBOL_PATH.

Hapus.

Voila, bekerja seperti pesona.

ozba
sumber
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolsmasih belum ada dadu!
SliverNinja - MSFT
3

Masalahnya bagi saya adalah fitur "Browser Link" yang sangat berat ketika Anda memiliki beberapa tab terbuka untuk proyek yang sama!

Karena setiap kali kami meluncurkan proyek, ia membuka tab baru dengan komunikasi tautan peramban.

Tutup saja semua tab yang terkait dengan proyek dan biarkan hanya satu yang terbuka!

Studio visual instan gratis ini! Itu ajaib! ;-)

“Browser Link adalah fitur sejak Visual Studio 2013 yang menciptakan saluran komunikasi antara lingkungan pengembangan dan satu atau lebih browser web. Anda dapat menggunakan Tautan Browser untuk menyegarkan aplikasi web Anda di beberapa browser sekaligus, yang berguna untuk pengujian lintas-browser. "

A. Morel
sumber
3

Solusi cepat dan mudah bagi mereka yang tidak memiliki banyak penyimpangan dari pengaturan VS default.

Alat -> Pengaturan Impor dan Ekspor -> Ya, simpan pengaturan saya saat ini -> Visual C #

Saya yakin solusi di atas akan berfungsi dengan pengaturan default lainnya juga. Dalam kasus saya, ada sesuatu yang kacau dengan pengaturan pemuatan simbol saya, tetapi saya tidak dapat memperbaikinya meskipun saya mencoba beberapa solusi yang disarankan.

GDS
sumber
3

Pastikan Anda belum membuka Visual Studio dalam mode administrator

Saya menghadapi masalah ini dan harus berjalan dalam mode normal.

sajad
sumber
6
Sayangnya berjalan sebagai administrator diperlukan jika proyek Anda diatur untuk berjalan di IIS.
Nelson Rothermel
@NelsonRothermel Versi mana? Tidak lagi (VS2017).
Soleil - Mathieu Prévot
@ Solil: Di VS2017 masih diperlukan. IIS berjalan sebagai layanan Windows (atau serangkaian layanan) dan bukan di ruang pengguna. Anda mungkin merujuk ke IIS Express yang tidak memerlukan hak administrator. Saya biasanya merekomendasikan Anda menggunakan yang terakhir, terutama dalam organisasi yang mengunci mesin, tetapi memiliki beberapa kelemahan.
Nelson Rothermel