2015-10-16 13 views
8

VS2013からVS2015にアップグレードした後、デバッガを接続してWebアプリケーションがどの程度遅く動作するかに驚きました。だから私は特に遅いページを分析するためにMiniProfilerを使用してVS2013とVS2015の間の比較を行うことを決めた。Visual Studio 2015デバッガ - SqlCommandに高性能の影響

Comparison in Mini Profiler 興味深いことに、VS2013を使用してデバッグする場合、ページのロード速く、その後IIS IIS Expressの下に。しかし、VS2015でデバッグする場合、IISの方がIIS Expressの方が遅いです。

また、MiniProfilerは、SQL関連コードで時間の割合が高いことを示しています。だから私は、IIS上でページをプロファイルするdotTraceを使用してみました - VS2015のデバッガが付属してたら、それは添付かつてなし:それが表示されます

dotTrace comparison

こと(VS2015、CPU時間の非常に高い割合でデバッグするときリアルタイム)はSqlCommand.ExecuteReader()に費やされますが、デバッガは接続されていないため、そのメソッドはかなり効率的です。

私は同じ結果を持つ別のコンピュータでもこれをテストしました。

私のアプリケーションはASP.NET MVC、NHibernateは、SQL Serverの2014を使用し、私はIIS 10に

を使用しているSQLコマンドを実行している場合は特に、添付のVS2015のデバッガで誰でも他の経験豊富な遅いアプリケーションのパフォーマンスをしていますか?どのような根本的な原因がどのようなアイデアとどのようにそれを解決するには?

+0

関数呼び出しトラッキングを使用してプロファイルを作成する場合、呼び出しのカウントは同じですか?プロファイラ内の呼び出しスタックは、少し違って見えます(デバッグにはExecuteFinishとAddAllがあり、デバッグではそうではありません)。 NHが何らかの理由でより多くのことをしているのか、別のことをしているのか疑問です。 –

+0

2015年には、イベントレコーダー(おそらくSQLステートメントがいっぱいですが、私は賭けたいと思っています)を含む診断は、おそらくあなたを苦しめています。 http://i.stack.imgur.com/QWV4V.png reproに行き、それをチェックしてください。これを無効にすることができるかどうか、またこれで得られるパフォーマンスのメリットを確認してください。 – Will

+1

@ウィルただ診断を無効にしようとしましたが、違いはありませんでした。 – jonh

答えて

0

を試してみてくださいそれが唯一のオプションは、vs2015

で診断を無効にすることでした確かにado.net挿入操作 の多くの診断でしたViual Studio 2017 rcで同じです

関連する問題