2015-10-16 8 views
8

Po aktualizacji z VS2013 na VS2015, byłem zszokowany tym, jak wolno działa moja aplikacja internetowa z załączonym debuggerem. Więc postanowiłem zrobić porównanie między VS2013 i VS2015 użyciu MiniProfiler analizować szczególnie powolne strony:Debugger Visual Studio 2015 - duży wpływ na SqlCommand

Comparison in Mini Profiler Co ciekawe, podczas debugowania przy użyciu VS2013, strona ładuje się szybciej pod IIS następnie IIS Express. Ale podczas debugowania w VS2015, IIS jest znacznie wolniejszy niż IIS Express.

Ponadto MiniProfiler wskazuje, że znaczna część czasu jest używana w kodzie powiązanym z SQL. Tak próbowałem przy użyciu dotTrace do profilu strony na IIS - raz z dołączonym debugera VS2015, a raz bez niego załączone: Wydaje

dotTrace comparison

że podczas debugowania w VS2015, bardzo wysoki procent czasu procesora (w czasie rzeczywistym) spędza się na SqlCommand.ExecuteReader(), podczas gdy debugger nie jest dołączony, ta metoda jest dość wydajna.

Przetestowałem to również na innym komputerze z takimi samymi wynikami.

Moja aplikacja używa ASP.NET MVC NHibernate, SQL Server 2014 i używam IIS 10

Czy ktokolwiek inny doświadczyła niska wydajność aplikacji z debugera VS2015 przywiązany, szczególnie podczas uruchamiania poleceń SQL? Jakieś pomysły, co jest główną przyczyną i jak ją rozwiązać?

+0

Jeśli profilujesz ze śledzeniem wywołania funkcji, czy połączenie jest takie samo? Stosy wywołań w profilerze wyglądają nieco inaczej (debugowanie ma ExecuteFinish i AddAll, gdzie debugowanie nie jest możliwe). Zastanawiam się, czy NH robi coś więcej lub innego z jakiegoś powodu? –

+0

Założę się, że diagnostyka w 2015 r., W tym rejestrator zdarzeń (prawdopodobnie zakładka wypełniona słowami sql, zakładam) prawdopodobnie Cię niepokoi. http://i.stack.imgur.com/QWV4V.png Przejdź do repro i sprawdź to. Sprawdź, czy możesz wyłączyć to i jakie korzyści z tego płyną. – Will

+1

@Will Po prostu próbowałem wyłączyć diagnostykę i nie robiło to żadnej różnicy. – jonh

Odpowiedz

0

w moim przypadku to było rzeczywiście diagnostyka z dużo ADO.NET operacji wstawiania jedyną opcją było wyłączyć diagnostykę w vs2015

W Viual Studio 2017 rc jest on taki sam

Powiązane problemy