当前位置:  开发笔记 > 后端 > 正文

ASP.NET 5针对dnx451/dnx46性能

如何解决《ASP.NET5针对dnx451/dnx46性能》经验,为你挑选了1个好方法。

使用ASP.NET 5,一切都被认为是基于选择,应用程序只加载选择的库,这是惊人的.较旧的ASP.NET功能封装在System.Web命名空间中,该命名空间具有构建ASP.NET应用程序所需的一切.将所有未使用的库填充到内存中是一个真正的成本,因此ASP.NET 5方法是选择您需要的内容而不是使用未使用的代码的大型库.

我的问题:

    这种选择方法和性能改进是否仅适用于面向.NET CORE的ASP.NET 5?或者,针对Windows上的完整框架的ASP.NET 5是否获得了所有这些不错的功能?

    当针对dnx451或dnx46时,它们是否依赖于System.web并且所有未使用的库仍然像旧版本的ASP.NET一样加载到内存中?

    据推测,ASP.NET 5每个请求大约需要2kb内存,而旧版本的ASP.NET每个请求占用30kb内存.只有在针对dnxcore50时才能实现这种出色的性能提升吗?或者这也是dnx451/dnx46的情况?

    在IIS 7.5+上运行ASP.NET 5 dnx46时,System.web是否仍未加载?(不确定,但我认为IIS和System.web是集成的,如果我错了,请纠正我).

    最后,ASP.NET 4.6应用程序和在ASP.NET 5上运行的应用程序(dnx46)之间有什么区别?后者对另一方有什么改进?

有人请为我澄清一下吗?我似乎无法找到这些问题的明确答案.



1> Kévin Chalet..:

这种选择方法和性能改进是否仅适用于面向.NET CORE的ASP.NET 5?或者,针对Windows上的完整框架的ASP.NET 5是否获得了所有这些不错的功能?

不,ASP.NET 5提供的很大一部分改进也适用于DNX451(也就是"完整框架"版本).Kestrel(用于ASP.NET 5的新"通用"Web服务器)尤其如此,其中大量RPS改进对两个版本都有影响.

当针对dnx451或dnx46时,它们是否依赖于System.web并且所有未使用的库仍然像旧版本的ASP.NET一样加载到内存中?

没有.使用新的托管层System.Web,即使在使用IIS时也从未加载.

据推测,ASP.NET 5每个请求大约需要2kb内存,而旧版本的ASP.NET每个请求占用30kb内存.只有在针对dnxcore50时才能实现这种出色的性能提升吗?或者这也是dnx451/dnx46的情况?

由于社区在Kestrel所做的出色工作,自第一次测试以来,分配(以及"每个请求的字节数")大幅减少,这对两个版本都有影响.使用CoreCLR更有可能帮助减少托管整个应用程序所需的内存(因为您引用了较轻的程序集),但是对"每个请求的字节数"的影响应该是难以察觉的.

当然,CoreCLR的影响主要取决于你的项目中有多少引用:在大多数情况下,内存增益应该是微不足道的(你有更轻的组件,但由于CoreCLR完全模块化的特性,它们更多众多).

在IIS 7.5+上运行ASP.NET 5 dnx46时,System.web是否仍未加载?(不确定,但我认为IIS和System.web是集成的,如果我错了,请纠正我).

不,由于新的托管层(IIS以前的集成,Helios,用于加载System.Web,但HttpPlatformHandler不再适用).请注意,IIS不再"托管"您的应用程序:它现在只是充当反向代理.实际上,所有内容都在一个单独的DNX工作进程中处理,由IIS启动和监视.

最后,ASP.NET 4.6应用程序和在ASP.NET 5上运行的应用程序(dnx46)之间有什么区别?后者对另一方有什么改进?

在新堆栈上托管"ASP.NET 4.6应用程序"将是一件复杂的事情(如果不是不可能的话),特别是如果它依赖System.Web并且不使用像OWIN这样的抽象层(ASP.NET 5提供了与OWIN的兼容层) ).

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有