Visual Studio hata ayıklama / yükleme çok yavaş


505

Ben bitirdim. Visual Studio ASP.NET MVC sitelerimi genellikle ağdan hata ayıklamak veya sadece düz yükleme ("hata ayıklama olmadan başlatma"). Her zaman değil: ilk başta, projeler güzel ve hızlı yüklenir, ancak yavaş yüklendikten sonra bundan sonra her zaman yavaş yüklenir. 1-2 dakika veya daha fazla bekleyebilirdim.

Kurulumum:

Şu anda Visual Studio 2012 Express kullanıyorum , ancak Visual Studio 2010 Express'te de aynı sorunu yaşadım. Çözümüm bir ağ sürücüsünde saklanıyor; özellikle, önemliyse Belgelerim bir ağ sürücüsüne yönlendirilir. (Olmamalı. Sitemin bu kurulum altında çok hızlı yüklendiği zamanlar var.)

Genellikle Internet Explorer 9'a yüklüyorum, ancak aynı sorun Firefox'ta da oluyor.

Bu, üzerinde çalıştığım herhangi bir ASP.NET MVC projesinde olabilir ve tüm ASP.NET MVC projelerimin yaptığı DisplayTemplates'e sahip olduğu anlaşılıyor. Ve eğer önemliyse hepsi C # ve Razor.

Semptomlar:

Sistem sembollerimi yüzlerce kez yükleyecek . Temel olarak, aşağıdakiler, ancak her biri aynı CSHTML'ler için her zamankinden biraz farklı DLL dosyalarına sahip en az 300 satır vardır:

'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.

Yukarıda üç DisplayTemplates var: "Kişi", "Konum" ve "StatusCode". Görünen o ki, görüntüleme şablonunun her çağrılışında IIS iki kez sembol yüklüyor. Bu nedenle, bu ekran şablonlarının üçünü çağıran 100 girişlik bir tablo görüntülüyorsam, 600 ayrı simge yüklüdür.

Bu da hızlı bir işlem değil. IIS'nin oluşturduğu günlük dosyalarına bakıldığında, her sembolün yüklenmesi yaklaşık 200 ms sürer. Böylece, süper uzun gecikmeler.

Ne Denedim?

  • Hata ayıklama veya Sürüm sürümü, önemli değil.
  • Projemi bir web sunucusunda tam bir IIS uygulamasına koymak, sorun olmadan süper hızlı çalışır.
  • Cassini, IIS Express 7.5 ve IIS Express 8.0'da sorun var.
  • Tüm Kesme Noktalarını Sil hiçbir şey yapmaz.
  • Temiz Çözüm veya .suo silmek de hiçbir şey yapmaz.
  • IIS Express'i onarırsam veya My Docs\IISExpressklasörü siler veya Visual Studio'yu onarır / yeniden yüklerseniz → sorun giderilebilir, ancak hemen geri gelmeden önce bir süre için gidebilir.

Herhangi bir tavsiye takdir edilmektedir.

Daha fazla soruya cevap vermek için, evet makinem kesinlikle beygir gücüne sahip. Öfkeli olan şey, NOTHING değiştirilmiş olan aynı projenin, bazen IIS Express'i onardıktan ve My Docs\IISExpressklasörü sildikten sonra bazen çok hızlı bir şekilde yüklenebilmesidir . Sonunda "bir şey" olur ve tekrar yüklenmesi 2 dakikaya kadardır. Üzerinde çalıştığım şey karmaşık bir proje değil. Harici kütüphaneler veya bağımlılıklar yoktur ve VS.NET'imin eklentileri yoktur.

Dikkat çeken bu makine, tahribat yaratan bir geçmişi olan Symantec Endpoint Protection'a sahiptir. Ancak bunu açıkça devre dışı bırakmak (yönetici olmak iyidir) sorunu çözmedi.

Bu noktada bir teorim var. Ben tüm bu düşünüyorum çünkü bir ağ paylaşımı kapalı yeniden yönlendirilmiş bir klasör üzerinde çalışıyorum. Hata ayıklayıcı yüzlerce "yüklü sembol" satırından geçerken, ne yaptığını görmek için durdum. Benim kodumda, DisplayTemplate yüklediğim vardı. Şablon çıktısına adım atmak bu:

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'

Görünüşe göre Visual Studio, her çağrıldığında ekran şablonumu yeniden derliyor , yani yine yüzlerce kez. Benim teorim, Visual Studio dosyayı derler, ağ paylaşımına kaydeder, ağ paylaşımı daha sonra bir şekilde yeni bir zaman damgalar ve Visual Studio sonra dosyanın değiştiğini düşünüyor ve böylece Visual Studio yine yeniden derler. Sadece bir teori olsa da; Gerçekten hiçbir fikrim yok.

Birincisi, görünüşe göre çevrimdışı dosyalarım var (bu bir ofiste bir masaüstü bilgisayar; daha az umursamadım). Yarın devre dışı bırakacağım, yeniden başlatacağım ve tekrar deneyeceğim.

Ayrıca, projemi olduğu gibi yerel C'ye taşımak: düzeltiyor. Çok hızlı yüklenir. Ancak bu bir çalışma ortamı için ideal değildir. Önceki Sürümleri kaybediyorum, manuel olarak kopyalamadığım sürece kodum hiç yedeklenmiyor ve artık kimseyle paylaşılmıyor.

Gelirse, C'den ağ paylaşımına ileri geri kopyalayarak bunu yapabilirim. Her sayfa yüklemesi için iki dakika beklemek çok daha can sıkıcı bir durum.


Çok fazla sorum var: Çalıştırdığınız makineye ne dersiniz? Yapmaya çalıştığınız şey için yeterli beygir gücü var mı? Üçüncü taraf eklentileriniz var mı? Ne tür bir antivirüsünüz var?
Fickle Panther

1
Sorum daha fazla bilgi ile güncellendi.
Ber'Zophus

Çevrimdışı dosyaları kaldırmak yalnızca düzeltme gibi görünüyordu. Bir süre harika çalıştı, sonra sorun geri geldi. Ama başka bir olası cevabım daha var. Çözümümü güncelleme.
Ber'Zophus

Virüsten koruma sorusunu ikinci olarak, ThreatFire ile ilgili önemli sorunlar yaşadım. Geçici olarak kapatılması hata ayıklayıcıyı en azından yüzlerce kez geri çekti. Ana AV (Avast!) Cihazımı kapatmak sadece biraz yardımcı oldu.
Jon Coombs

@JohnSaunders Yönetici modunda çalıştırmayı denediniz mi ?: stackoverflow.com/questions/36322440/…
Robert Oschler

Yanıtlar:


650

Visual Studio 2012'de "yavaş sembol yükleme" sorununu şu şekilde çözdüm:

  • Araçlar -> Seçenekler -> Hata Ayıklama -> Genel'e gidin

  • "Yalnızca Kodumu Etkinleştir" in yanındaki onay işaretini işaretleyin.

  • Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller'e gidin

  • "..." düğmesine tıklayın ve önbelleğe alınmış sembolleri saklamak için yerel bilgisayarınızda bir yerde yeni bir klasör oluşturun / seçin. Benim "Symbol caching" adını verdim ve Belgeler -> Visual Studio 2012'ye koydum.

  • "Tüm sembolleri yükle" yi tıklayın ve sembollerin Microsoft'un sunucularından indirilmesini bekleyin, bu biraz zaman alabilir. Tüm sembolleri yükle düğmesinin yalnızca hata ayıklama sırasında kullanılabilir olduğunu unutmayın.

  • Visual Studio'nun Microsoft sunucularını uzaktan sorgulamasını önlemek için "Microsoft Sembol Sunucuları" nın yanındaki onay işaretini kaldırın.

  • "Tamam" ı tıklayın.

Artık sembol yükleme çok daha hızlı olmalı.

Microsoft derlemelerinde herhangi bir değişiklik / indirme yaparsanız, Semboller iletişim kutusuna ve "Tüm sembolleri yükle" ye geri dönmeniz gerekebileceğini unutmayın.


31
Korkarım, korkarım. Bu, Microsoft sembolleri ile ilgili sorunlar etrafında dönen kişiler için iyi bir çözüm olacaktır. Ne yazık ki benim için sorunum kendi sembollerimin etrafında dönüyor gibi görünüyor. Bu semboller zaten yerel olarak önbelleğe alınır ve bir nedenle yüzlerce döşemeyi yalnızca bir sayfa yükünde derler.
Ber'Zophus

8
Bu ipucu için teşekkürler burada yaşıyorum bir sorun tüm sembolleri yükle düğmesi benim için herhangi bir fikir devre dışı mı?
Chris McGrath

14
@ChrisMcGrath bu bağlantıyı deneyin social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Büyük cevap için Btw teşekkürler
Bobby Tables

16
adımlarınızı uyguladıktan sonra bile "Tüm sembolleri yükle" düğmesi gizlidir ve bunu tıklayamıyorum. Ben şimdi ne yapmalıyım? VS Express 2012 kullanıyorum.
Himanshu Aggarwal

86
Düğmesi tüm sembolleri yükle devre dışı bırakılmış olanlar için çözüm: Düğme yalnızca hata ayıklama sırasında kullanılabilir.
Gwynnbleid1

114

İntelliTrace'i kapatmak benim için bunu düzeltti.

Visual Studio'da, Araçlar -> Seçenekler -> IntelliTrace

Ardından, "IntelliTrace'i Etkinleştir" onay kutusunun işaretini kaldırın.

Visual Studio 2012'de IntelliTrace'i devre dışı bırakma


2
Birim testlerimden birine adım atarken bu sorunu yaşadım. Intellitrace açıkken yaklaşık 300 saniye ve kapatıldığında yaklaşık 14 saniye sürdü. Bu düzeltme benim için gerçekten işe yaradı.
Paul Bullivant

2
Başlamamı 25 sn'den 6'ya çıkardım. Uygulama başlangıcında kendi
James Ellis-Jones

2
Lanet olsun ... 1 dakikadan 10 saniyeye. VS2012 Ultimate'da varsayılan olarak seçilidir. Çocuklar dikkat
Kevin Cloet

7
Intellitrace'i Araçlar => Seçenekler'de bulamıyorum. .. vsTopluluk 2015
shireef khatab

8
Visual Studio 2015'te Intellitrace yalnızca VS 2015 Enterprise Edition'da bulunur.
HK1

78

Bunların hiçbiri benim için işe yaramadı, ancak silinen bir sembol üzerinde bir kesme noktası buldum. Görünüşe göre 2010 üzerinde asılıydı. Sorunun bu olup olmadığını görmek için hata ayıklama-> windows-> kesme noktalarını yapın.

Saunders, bunun kontrol edildiğinden bahsetti, ancak bu sorunun çözümlerinde bahsedilmedi. Belki bazıları için ortak bilgi, ama hepimiz için değil.


5
VS2010'da aniden bu problemi yaşamaya başladım ve gerçekten de buna neden olan sınır değerlerimden biriydi. Kırılma noktalarımı temizler temizlemez tekrar hızlı oldu.
David Airapetyan

3
Wow..VS2012, sadece basit bir proje oluşturmak için 5 dakika sürünüyordu. Tüm kesme noktaları temizlendi ve tekrar hızlı bir şekilde aydınlatıyor, teşekkürler !!
QFDev

1
Bunu okuduktan ve söylediklerinizi takip ettikten sonra, bir şekilde edmx varlık dosyalarından birinin XML koduna yerleştirilmiş bir kesme noktası buldum. Sen de erkek / kadın.
JB06

Bir ton teşekkürler. Bu, VS2010'un çok yavaş performansıyla sorunumu çözdü.
Vaibhav Patle

2
Bu aynı zamanda Visual Studio 2015'te yaşadığım yavaş bir hata ayıklama sorunu için de işe yaradı.
purplecat

41

"Geçici ASP.NET Dosyaları" klasörünü sildim ve localhost sayfamın yükü önemli ölçüde iyileşti. İşte yol ...% temp% \ Temporary ASP.NET Files \


9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp yol ve "AppData" klasörü gizli bir klasör
Shiva Naru

2
Burada 1GB eski saçmalık buldum .... hepsini silin ve VS biraz daha iyi çalışıyor. :)
RitchieD

29

FusionLog'u etkinleştirdiniz mi?

VisualStudio'um, hata ayıklamaya başladığında çözümü başlatmak ve sembolleri yüklemek için çok yavaştı. Sadece makinemde yavaştı, ama diğer makinelerde değil.

FusionLog diske tonlarca günlük dosyası yazar. Sadece RegEdit'te devre dışı bırakmak her şeyi çözdü, benim durumumda.

Bu kayıt defterindeki FusionLog anahtarıdır:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

ForceLog değerini kontrol edin (1 etkin, 0 devre dışı).


1
Ahh ... çok güzel bir cevap. Aynı gemideydim. Ayrıca FusionLoguzun zaman önce etkinleştirdim ve devre dışı bırakmayı unuttum. Şimdi ASP.NET MVCuygulama hata ayıklama çok daha hızlı. Tanrıya şükür ve @rkawano. :)
Leniel Maccaferri

29

Aynı sorunu yaşadım ve yukarıdaki kararların çoğunu denedim. Sadece önbellek ve geçici dosyaları silmek benim için çalışıyor.

Bu iki klasörün içeriğini kaldırmayı deneyin:

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

ve

C:\Users\\{UserName}\AppData\Local\Temp (özellikle iisexpress ve Geçici ASP.NET Dosyaları klasörleri).

Bu C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, aşağıdaki içeriğe sahip klasöre bir cmd dosyası ekleyerek Windows'ta oturum açıldığında otomatik olarak gerçekleşecek şekilde ayarlanabilir :

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

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

Bu işe yaradı. "AppData" klasörü, birinin bulamaması durumunda gizli bir klasördür.
Shiva Naru

3
İşte bu o! O kadar iyi çalışıyor ki şimdi Windows'da oturum açtığımda otomatik olarak gerçekleşiyorum: C: \ Users \ {kullanıcı adı} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ klasörüne DeleteVisualStudioCache.cmd adlı bir dosya ekledim Aşağıdaki komutlarla başlatma: rmdir C: \ Users \ {kullanıcıadı} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {kullanıcıadı} \ AppData \ Local \ Temp / s / q pause
Graham Laight

25

Sanırım nihayet neden olmasa da, en azından sebebini öğrenebilirim. Sorun tekrar oluşmaya başladığında, bir sürü "conhost.exe" süreç yetim fark ettim. Visual Studio'yu kapatırdım ve açık kalacaklardı. Her biri üzerindeki görevi sonlandırmak, sorunu güvenilir bir şekilde çözdü. [inşallah]

(Sadece unutmayın, conhost.exe bir Visual Studio işlemi olsa Visual Studio kullanır. Bu nedenle, orada diğer kullanıcılar orada conhost.exe çalıştıran başka uygulamalar olabilir. YMMV hariç hepsini güvenli bir şekilde sonlandırın.)

Bu neden olur? Aynı anda birden fazla proje açtığımda, sık sık yapmaya eğilimli olduğum halde, herhangi bir zamanda sadece bir tane oluşturup hata ayıklasam bile ortaya çıkıyor.


Edit # 1 - Bu maalesef bir "gümüş kurşun" değil. Benim için her zaman işe yaramıyor. Tipik olarak, işler yavaşladığında, tüm Visual Studio oturumlarımı kapatıyorum, sonra görev yöneticisine gidiyorum ve herhangi bir örneğini sonlandırıyorum, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe ve MSBuild.exe Bulabilirim.

Tipik olarak, bundan sonra, projemi yeniden başlattığımda hızlı bir şekilde yüklenir. Ama her zaman değil.

Gerçekten en iyi eylem yolu muhtemelen yeniden yönlendirilmiş bir klasör / ağ paylaşımı kapalı kod hata ayıklamak değil olduğunu düşünüyorum.


Düzenleme # 2 - İki yıl sonra, bu hala Visual Studio Community 2013 benim için bir sorun, ama en azından suçlu görevi bulmak gibi görünüyordu: Explorer.exe . Evet, kim biliyordu. Bu görevi bitirdiğim anda, bam, sayfa bir saniye içinde yüklenir.

Yeniden yönlendirilmiş ağ sürücüme açık olan bir Windows Gezgini dosya tarayıcım varsa (bu genellikle kodumun olduğu yer olduğu için), bu sorun ortaya çıkıyor gibi görünüyor. Pencereyi kapatmak yeterli değil, tüm Explorer.exe görevini öldürmem gerekiyor. Sadece ne yaptýđýný tahmin edebildim ... dosya tutacaklarýyla çýkmak mý?

Genellikle yeni bir explorer.exe görevi başlatmak için görev yöneticisini kullanabilirim (yalnızca çok fazla alt-sekme alabilirim) ve Visual Studio güzel ve hızlı yüklemeye devam edecek. Ama tekrar Windows Gezgini'ni açtığımda, neredeyse her zaman süper yavaş yavaş geri döner.

Dolayısıyla, yeniden yönlendirilmiş bir ağ paylaşımınız varsa, denemenizi sağlayın. Emin yerel çalışma yener.


Bunun biraz eski bir haber olduğunu biliyorum, ama aynı problemi yaşadım. Ekibim, yerel kaynağımdan dosyaların çalıştırıldığı yere dosyalar üzerinde kopyalanan bir komut dosyası kullanmamı önerdi ve bu alt programı her çalıştırdığımda bir conhost.exe oluşturacak ve kapatmayacaktı. Bir kez daha fazladan tüm kopyalarını bitirdiğimde şimşek çaktı.
SomeoneRandom

22

Yukarıdaki tüm iyi çözümleridir ve ben hepsini denedim ama çözüm var burada üzere olan

Debug -> Delete All Breakpoints

19

Benim için IE 9.08.8112.16241 idi. Firefox veya Chrome kullandığımda F10 veya F11 ile yavaş hata ayıklama yoktu. IE ile sorunun ne olduğunu bilmiyorum ama resmi olarak şimdi test için kullanmaktan umutsuzluk.

Güncelleme: Tüm IE program eklentilerini kapattım ve tam hıza geri döndü. Onları birer birer açmak LastPass'ın (benim durumumda) suçlu olduğunu ortaya çıkardı. Sonuçta MS'yi suçlamıyorum sanırım.


2
Bu da benim sorunumu çözdü. Hata ayıklamaya çalışırken, özellikle QuickWatch penceresini kullanırken tam sistem kilitlemeleri alıyordum. LastPass Araç Çubuğu'nun devre dışı bırakılması gerekir. (IE 10.0.9200.16635)
mpeterson

1
İşte bu yüzden StackOverflow'u seviyorum. Ancak LastPass bunu düzeltmeli - onları bilgilendirmek için şimdi e-posta ile gönderiyorum. VS2013 ve IE 11 ile ilgili hala bir sorun var. LastPass devre dışı bırakıldı ve normale döndü. Bilgi için UserBlueOne sayesinde - tekrar çalışmaya devam edebilirsiniz.
Sean

1
FREAKEN LASTPASS! MVC uygulamamla VS 2012'de hata ayıklarken klavyem tamamen doldurulmuştu. LastPass devre dışı bırakıldı ve her şey tekrar uçtu. TEŞEKKÜRLER! Upvoted.
Tony

Win8.x'te IE ile giriş için MS hesabı kullanıyorsanız, girişlerinizi senkronize etmesini sağlayabilirsiniz, bu yüzden LastPass kullanmaya gerek yoktur, ancak yine de (kısmen) faydaları vardır, :)
Peter

Bu… benim için çalıştı. Lütfen şimdi 2019 olduğunu - altı yıl sonra --- ve Microsoft Edge ile LastPass eklentisini kullanıyorum.
Luke Maurer

15

Benim için, web.config dosyasındaki derleme etiketine aşağıdaki iki özelliği ekleyerek performansı önemli ölçüde artıran bu ipucunu uyguladım.

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

Batch = "false" ne yapar?

Yalnızca değişen ve yeniden derlenmesi gereken sayfaları derleyerek ön derlemeyi daha seçici hale getirir

OptimizeCompilations tam olarak ne yapıyor? Kaynak

ASP.NET, bin ve App_Code klasörü ve global.asax dahil olmak üzere birçok şeyin durumunu içeren uygulama başına karma kodunu kullanır. Bir ASP.NET uygulama etki alanı başladığında, bu karma kodun önceden hesapladığından değiştirilip değiştirilmediğini kontrol eder. Varsa, kodgen klasörünün tamamı (derlenmiş ve gölge kopyalanmış derlemelerin canlı olduğu) silinir.

Bu optimizasyon açıldığında (optimizeCompilations = "true" aracılığıyla), karma artık bin, App_Code ve global.asax değerlerini dikkate almaz. Sonuç olarak, bu değişiklik olursa codegen klasörünü silmiyoruz.

Referans: msdn'de derleme öğesi


2
Gönderdiğiniz için teşekkürler. Bu aslında performansımı iyileştirmek için kabul edilen cevaptan daha fazlasını yaptı.
Kanapolis

@ Ber'Zophus bunu deneyebilir ve sonuçlarınızı bizimle paylaşır mısınız?
Korayem

derleme system.web içine girer
Bir

1
İçinde büyük çözüm ve web uygulaması (MVC) için çalıştığı onaylandı.
hQuse

12

Ben de hata ayıklama ile icra perfomance sorunları vardı ve ben çok sayıda hata ayıklayıcı seçenekleri denedim. Benim durumumda bu seçenekleri değiştirdiğimde büyük bir performans elde edildi:

Araçlar - Seçenekler - Hata Ayıklama - Çıktı Penceresi - (Genel çıkış ayarları - Tüm hata ayıklama çıkışı) - KAPALI


12

Benim durumumda, VS 2012 ile .NET Reflector Visual Studio Uzantısı (sürüm 8.3.0.93) idi. Hata ayıklama her biri için 10 saniye sürüyordu Step Over (F10) .

Visual Studio'da, Araçlar / Uzantılar ve Güncelleştirmeler ... 'e gidin ve .NET Reflector Visual Studio Uzantısını devre dışı bırakın . Visual Studio'yu yeniden başlatmayı unutmayın.


Bu da benim sorunuma neden olduğunu zor yoldan öğrendim. Sadece uzantıyı devre dışı bıraktıktan sonra başka birinin fark edip etmediğini görmek için baktım.
awj

11

"Yerel Kod" hata ayıklayıcısı yavaş Visual Studio hata ayıklama ile ilgili sorunlar yaşadım etkinleştirildiğinde . Devre dışı bırakmayı deneyin.

"Visual Studio 2012" uygulamasında şu adrese gidin:

  1. Proje Özellikleri ->
  2. Web ->
  3. Hata ayıklayıcılar (sayfanın altı). ->
  4. ASP.NET hariç tümünü devre dışı bırak

Umarım yardımcı olur.

Benzer sorular: 1 , 2


Benimki maalesef buna çoktan ayarlanmıştı, bu yüzden benim için düzeltme yok. Ama başkalarının denemesi için iyi bir tavsiye olabilir.
Ber'Zophus

Bu benim için sorunumu çözdü!
Harvey

11

Benim durumumda

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

Bunu işaretlediğimde, hata ayıklama başarım 45-60 saniyeden 0-5 saniyeye indi.


Bu en hızlı olanı
Frank Myat Per

10

Bir keresinde, bir elektrik kesintisinden sonra, bir kesme noktasına her vurulduğunda veya bir İstisna atıldığında aynı yavaşlık problemiyle karşı karşıya kaldım.

"Suo" dosyası ("sln" çözüm dosyası ile aynı dizinde) bozuk ve her şeyi yavaşlatmak hatırlıyorum belirsiz vardı.

resim açıklamasını buraya girin

Benim "suo" dosyaları sildim ve her şey yolunda idi. .Suo dosyalarının silinmesi zararsızdır ve yalnızca Windows mizanpajımı ve başlangıç ​​projesini ve diğer birkaç kritik olmayan özelleştirmeyi yeniden oluşturmayı gerektirir.


Sadece elektrik kesintisinden sonra yavaşladığımı fark ettim, bu cevap için çok teşekkürler.
Nic

.vsVisual Studio'nun sonraki sürümlerinde bir klasör arayın . Bunu sil.
CAD bloke

10

Ayrıca bu sorunla karşı karşıya kaldım, aşağıda gerçekleştirdiğim adımlar ve her zaman benim için çalışıyor:

  • Çözümün .suo dosyasını silme.
  • Geçici ASP.NET Dosyalarını Silme (Dosyayı % WINDOW% \ Microsoft.NET \ Framework \\ Geçici ASP.NET Dosyalarında bulabilirsiniz )
  • Uygulamadaki tüm kesme noktalarını silme.

Yeniden başlatma, normalden 10 kat daha normal yerine 5 kat daha uzun sürdü. .Suo dosyasını silmek neredeyse anında başlatılmasını sağlamıştır. Teşekkürler!
Shelby115

Görünüşe göre .suo dosyası silindi. Bu dosyaları silmenin herhangi bir nedeni performansı artırmaya yardımcı olur.
SharpCoder

@SharpCoder .suo, IDE'de şu anda açık olan dosyalar, hata ayıklayıcı bilgileri, yerel ayarlar vb. Gibi birçok bilgi içerir. Ve bu dosyalar bozulduğunda, VS'nin yavaşlamasına ve hatta takılmasına neden olan daha fazla CPU kullanımı tüketmeye başlayın. bazı durumlar.
Geeky Ninja

9

Hala bu sorunu yaşıyorsanız bilmiyorum, ama VS benim için yapmasına izin vermek yerine hata ayıklayıcı sürecin kendisine ekleyerek Visual Studio sitelerinde hata ayıklama ve ben büyük ölçüde geliştirmek için bulduk. AttachTo adlı VS için bir uzantı kullanın ve burada nasıl kullanılacağı hakkında küçük bir yazı var .

Umarım bu yardımcı olur.


7

Yavaş VS sorunum Tarayıcı Bağlantısı devre dışı bırakılarak çözüldü

resim açıklamasını buraya girin


"Teşekkür ederim" yorumları burada biraz kaşlarını çattı biliyorum, ama cidden, ÇOK TEŞEKKÜR EDERİZ. Bu değişiklik, test ettiğim programı yavaştan kullanılamaz olma noktasına ve esasen anlık reaktiviteye kadar aldı. Muhtemelen bana bir şeyler yüklemek için günde bir iki saat verimlilik aldın, sadece bir şeyler yüklemek için beklemek zorunda
kalmadın

@thnkwthprtls hoş geldiniz - dikkat etmeniz gereken MS varsayılan ayarlarından biri :)
Salty

Bu, onu devre dışı görmek gerekli değil cevabım => stackoverflow.com/a/34979659/2736742
A. Morel

6

Birisi bu alanın sol alandan geldiğini fark ederse, web.config dosyasında kesme noktası bulunmadığından emin olun. Bir başıboş fare tıklaması ile bir tane ayarlamış olmalıyım ve gerçekten tüm hata ayıklama işlemlerini yavaşlattı.


Sadece aynı şeyi kendim yaptım. Neredeyse beni delirtti. Web.config dosyasındaki etkin olmayan bir kesme noktası neden hata ayıklamayı tamamen bozuyor?
pleunv

6

Tüm gün geçtikten sonra sembollerin kaplumbağa hızı kadar yavaş yüklenmesini bekleyerek, olası tüm kombinasyonlar arasında karıştırma ve geçiş yapma: Sadece Kodum , Önbellek sembolleri , Intellitrace , Tam Zamanında, öldürme işlemleri vb.

Benim çözüm aslında antivirüs devre dışı bırakmak oldu . Evet, Windows Defender proje lansmanımı yavaşlatıyordu! Visual Studio'nun istediği ve tüm sembol yükleme işlemini yavaşlattığı için tüm dll'leri kontrol eder.

Makinelerimizin çözümü gerçekten hızlı bir şekilde derlemek için harika özelliklere sahip olduğunu söylemeliyim, bu yüzden bu bir problem olmadı. VS 2013 Ultimate'da kod yazıyoruz.


1
Evet, windows savunmasını kapatmak bir cazibe gibi çalışıyor! Windows 10'da Windows Defender'ı kalıcı olarak kapatmak için, RegEdit yolu HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal

AVG antivirüs ile ilgili sorun yaşıyor. Sorunu çözmek için belirli bir klasörün virüsten koruma dışında bırakılabileceğini düşünen biri var mı? Sembolleri önbelleğe aldım ve sembol önbellek klasörünü hariç tuttum - ancak bu hiçbir fark yaratmadı.
Graham Laight

1
AV'yi koruyabilir ve belirli yol ve hedefleri (VS ve projeleriniz) analizinden hariç tutabilirsiniz
Soleil - Mathieu Prévot

5

Sembol önbelleğini boşaltmak benim için çalıştı.

Bkz: menü çubuğu / Araçlar / Seçenekler / Hata Ayıklama / Semboller / Sembol Önbelleğini Boşalt


3

Benzer sorun günümün yarısını daha iyi boşa!

Sorunumun çözümü burada söylenenlerden farklı olduğundan, başka birine yardımcı olabilmesi için göndereceğim.

Benimki bir kırılma noktasıydı. Benim proje dışında bir kütüphane işlevinde durması gerekiyordu (yani bir kod satırında F9 tuşuna basmak yerine, biz kesme noktaları penceresini kullanarak bunları oluşturmak) bir "işlev sonu" kesme noktası vardı .

"Fonksiyon adını doğrulamak için Intellisense kullan" kontrol ettim . (Bilgi burada .)

Bu, cehennem gibi yavaşladı (proje başlangıcı 2 saniye ile 5 dakika arasında).

Kırılma noktasını kaldırmak, onu iyi bir şekilde çözdü.


3

Yukarıdakilerin hepsini yaptıktan sonra benim için çalışan bir şey şuydu:
Konular penceresinde (Hata Ayıkla-> Windows-> Konular), Gruplandır öğesini Yok olarak ayarlayın. Bu sadece hata ayıklama sırasında yapılabilir.

Bu, o pencereyi kapattıktan sonra bile etkili oldu.


3

Visual Studio'da:

Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller

"Yalnızca belirtilen modüller" i seçin. "Modülleri belirle" bağlantısını tıklayın ve boş bir modül ekleyin (yeni belge düğmesini tıklayın ve Tamam'a basın).


3

Windows Gezgini'nde çözüm klasörünü açın, görsel stüdyoyu kapatın, .suo dosyasını Windows Gezgini'nden silin.

Şimdi projeyi görsel stüdyoda açın, umarım hata ayıklayıcı hızla eklenir / çıkarılır.


3

Benim için şartlı kesme noktalarıydı. Bunlar gerçekten yavaşlıyor gibi görünüyor.


1
Gerçekten de öyle. Ancak yalnızca bunları içeren satırlar gerçekten yürütülürse.
Peter Mortensen

3

Ortam değişkenlerinize gidin ve _NT_SYMBOL_PATH anahtarını arayın.

Silin.

Voila, bir cazibe gibi çalıştı.


value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolshala zar yok!
SliverNinja - MSFT

3

Benim için sorun, aynı proje için birkaç sekme açık olduğunda çok ağır olan "Tarayıcı Bağlantısı" özelliği oldu!

Çünkü projeyi her başlattığımızda, tarayıcı bağlantısı iletişimi olan yeni bir sekme açar.

Sadece proje ile ilişkili tüm sekmeleri kapatın ve sadece bir tane açık tutun!

Bu ücretsiz anında görsel stüdyo! Bu sihirdir ! ;-)

“Tarayıcı Bağlantısı, Visual Studio 2013'ten bu yana geliştirme ortamı ile bir veya daha fazla web tarayıcısı arasında bir iletişim kanalı oluşturan bir özelliktir. Web uygulamanızı aynı anda birden fazla tarayıcıda yenilemek için Tarayıcı Bağlantısını kullanabilirsiniz; bu, tarayıcılar arası testler için yararlıdır. ”


3

Varsayılan VS ayarlarından fazla sapması olmayanlar için hızlı ve kolay bir çözüm.

Araçlar -> Ayarları İçe ve Dışa Aktar -> Evet, geçerli ayarlarımı kaydet -> Visual C #

Yukarıdaki çözümün diğer varsayılan ayarlarla da çalışacağından eminim. Benim durumumda, sembol yükleme ayarlarımla ilgili bir şey bozuldu, ancak önerilen çözümlerin birkaçını denememe rağmen düzeltemedim.


3

Lütfen Visual Studio'yu yönetici modunda açmadığınızdan emin olun

Bu sorunla karşılaştım ve normal modda çalıştırmak zorunda kaldım.


6
Projelerinizi IIS'de çalışacak şekilde ayarladıysanız maalesef yönetici olarak çalıştırmanız gerekir.
Nelson Rothermel

@NelsonRothermel Hangi sürüm? Artık değil (VS2017).
Soleil - Mathieu Prévot

@Soleil: VS2017'de hala gereklidir. IIS, kullanıcı alanında değil, bir Windows hizmeti (veya hizmet kümesi) olarak çalışır. Yönetici hakları gerektirmeyen IIS Express'ten bahsediyor olabilirsiniz. İkincisini, özellikle makineleri kilitleyen bir kuruluşta kullanmanızı öneririm, ancak birkaç dezavantajı var.
Nelson Rothermel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.