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\IISExpress
folder, 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\IISExpress
folder. 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.
Jawaban:
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.
sumber
Mematikan intelliTrace memperbaiki ini untuk saya.
Di Visual Studio, Alat -> Opsi -> IntelliTrace
Lalu, hapus centang pada kotak centang untuk "Enable IntelliTrace".
sumber
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.
sumber
Saya menghapus folder "Temporary ASP.NET Files" dan memuat halaman localhost saya meningkat secara dramatis. Inilah path ...% temp% \ Temporary ASP.NET Files \
sumber
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:
Periksa nilai ForceLog (1 diaktifkan, 0 dinonaktifkan).
sumber
FusionLog
dulu dan lupa untuk menonaktifkannya. Sekarang men-debugASP.NET MVC
aplikasi jauh lebih cepat. Terima kasih Tuhan dan @rkawano. :)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:
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\Startup
folder dengan konten berikut:sumber
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.
sumber
Di atas semua solusi yang baik dan saya mencoba semuanya, tetapi punya solusinya di sini , yaitu untuk
sumber
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.
sumber
Bagi saya, saya menerapkan tip ini yang pada dasarnya meningkatkan kinerja secara drastis dengan menambahkan dua atribut berikut ke tag kompilasi di web.config
Apa yang dilakukan batch = "false"?
Apa sebenarnya yang dilakukan optimasiCompilations? Sumber
Referensi: Elemen kompilasi di msdn
sumber
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
sumber
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.
sumber
Saya punya masalah dengan debugging Visual Studio lambat ketika debugger "Kode Asli" diaktifkan. Coba nonaktifkan itu.
Pada "Visual Studio 2012" pergi ke:
Semoga ini bisa membantu.
Pertanyaan serupa: 1 , 2
sumber
Dalam kasus saya itu
Setelah saya hapus centang ini, mulai debug saya dari 45-60 detik menjadi 0-5 detik.
sumber
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.
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.
sumber
.vs
folder di versi Visual Studio yang lebih baru. Hapus itu.Saya juga menghadapi masalah ini, di bawah ini adalah langkah-langkah yang saya lakukan dan selalu bekerja untuk saya:
sumber
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.
sumber
Masalah VS lambat saya diselesaikan dengan menonaktifkan Link Browser
sumber
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.
sumber
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.
sumber
Mengosongkan cache simbol berhasil untuk saya.
Lihat: bilah menu / Alat / Opsi / Debugging / Simbol / Cache Simbol Kosong
sumber
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.
sumber
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.
sumber
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).
sumber
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.
sumber
Bagi saya itu adalah breakpoints bersyarat. Tampaknya hal-hal itu benar-benar memperlambat.
sumber
Buka variabel lingkungan Anda dan cari kunci _NT_SYMBOL_PATH.
Hapus.
Voila, bekerja seperti pesona.
sumber
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
masih belum ada dadu!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! ;-)
sumber
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.
sumber
Pastikan Anda belum membuka Visual Studio dalam mode administrator
Saya menghadapi masalah ini dan harus berjalan dalam mode normal.
sumber