2015-12-14 11 views
6

ASP.NET 5ではすべてがオプトインベースであると考えられています。以前のASP.NET機能はSystem.Web名前空間にカプセル化されていましたが、ASP.NETアプリケーションをビルドする必要がある可能性があります。使用していないライブラリをすべてメモリに詰め込むのに実際のコストがかかりました。そのため、ASP.NET 5のアプローチは、必要なものを選んで、未使用のコードの大きなライブラリを抱かないようにすることです。ASP.NET 5をターゲットとするdnx451/dnx46のパフォーマンス

私の質問:

  1. は、.NET COREをターゲットASP.NET 5でのみ使用可能なアプローチとパフォーマンスの向上で、このオプトインか?または、Windows上のフルフレームワークをターゲットとするASP.NET 5は、これらの優れた機能をすべて備えていますか?

  2. dnx451またはdnx46を対象とする場合でも、それらはSystem.webに依存していますが、使用されていないライブラリはすべて古いバージョンのASP.NET同様にメモリにロードされますか?

  3. ASP.NET 5では、リクエストあたり約2kbのメモリが必要ですが、古いバージョンのASP.NETでは要求ごとに30kbまでかかっていたようです。 dnxcore50をターゲットとしている場合にのみ、この優れたパフォーマンスの向上は可能ですか?これはdnx451/dnx46の場合も同じですか?

  4. IIS 7.5以降でASP.NET 5 dnx46を実行すると、System.webはまだ読み込まれませんか? (わからないが、私はIISとSystem.webが統合されていると思う。

  5. 最後に、ASP.NET 4.6アプリケーションとASP.NET 5(dnx46)で動作するアプリケーションの違いは何ですか?後者がどのような改善を維持していますか?

誰かが私にこれを明確にしてください。私はこれらの質問に対する明確な答えを見つけることができないようです。

+0

"使用されていないすべてのライブラリは、以前のバージョンのASP.NETと同じように読み込まれますか?以前のバージョンのASP.NETで_unused_ライブラリが読み込まれたのは何ですか? _未使用_誰ですか? – sisve

+0

私は、以前のASP.NET機能がSystem.Web名前空間にカプセル化されていることを意味していました。これらの未使用のライブラリをすべてメモリに蓄積するためには実際のコストがかかります。したがって、ASP.NET 5のアプローチは、必要なものを選んで、未使用のコードの大きなライブラリを抱かないようにすることです。 – Cindro

+0

dnx451/dnx46のボックスにはSystem.Webへの依存性はありません – Dealdiane

答えて

6

このアプローチとパフォーマンスの向上は、ASP.NET 5を対象とした.NET COREでのみ可能ですか?または、Windows上のフルフレームワークをターゲットとするASP.NET 5は、これらの優れた機能をすべて備えていますか?

いいえ、ASP.NET 5で提供される改善の大部分は、DNX451(別名「フルフレームワーク」バージョン)にも適用されます。特に、Kestrel(ASP.NET 5用の新しい「ユニバーサル」Webサーバー)では、RPSの大幅な改善が両方のバージョンに影響します。

dnx451またはdnx46をターゲットに設定しても、システムはまだSystem.webに依存していますが、使用されていないライブラリはすべて古いバージョンのASP.NET同様にメモリにロードされますか?

いいえIISを使用している場合でも、新しいホスト層ではSystem.Webがロードされません。

ASP.NET 5は要求あたり約2kbのメモリを必要とし、古いバージョンのASP.NETは要求ごとに30kbを要したと思われます。 dnxcore50をターゲットとしている場合にのみ、この優れたパフォーマンスの向上は可能ですか?これはdnx451/dnx46の場合も同じですか?

ケストレルのコミュニティの偉大な仕事のおかげで、割り当て(したがって、1バイトあたりのリクエスト)は最初のベータから大幅に減少しました。これは両方のバージョンに影響します。CoreCLRを使用すると、アプリケーション全体をホストするのに必要なメモリが削減される可能性が高くなります(軽量アセンブリを参照するため)。しかし、「1バイトあたりのバイト数」への影響はほとんど目立たないはずです。

もちろん、CoreCLRの影響は、プロジェクトの参照数に大きく左右されます。ほとんどの場合、メモリの利得は実際にはわずかです(アセンブリが軽くなりますが、CoreCLRの完全なモジュール化のため、彼らははるかに多数です)。

IIS 7.5以降でASP.NET 5 dnx46を実行しても、System.webはまだ読み込まれませんか? (わからないが、私はIISとSystem.webが統合されていると思う。

いや、新しいホスティング層のおかげで(System.Webをロードするために使用されるIISの以前の統合、ヘリオス、が、それはHttpPlatformHandlerと、もはや本当です)。 IISはアプリケーションを「ホストする」ことがなくなり、リバースプロキシとして機能するようになりました。すべてが実際には、IISによって開始および監視される個別のDNXワーカープロセスで処理されます。

最後に、ASP.NET 4.6アプリケーションとASP.NET 5(dnx46)で動作するアプリケーションの違いは何ですか?後者がどのような改善を維持していますか?それはSystem.Webに依存しているとOWIN(ASP.NETのような抽象化レイヤを使用していない特別な場合は、新しいスタック上の「ASP.NET 4.6アプリケーションは、」複雑なこと(不可能ではない)になりますホスティング

5はOWINとの互換性レイヤーを提供します)。

関連する問題