加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET 5针对dnx451 / dnx46性能

发布时间:2020-12-15 20:51:12 所属栏目:asp.Net 来源:网络整理
导读:使用ASP.NET 5,一切都被认为是基于选择,应用程序只加载选择的库,这是惊人的.较旧的ASP.NET功能封装在System.Web命名空间中,该命名空间具有构建ASP.NET应用程序所需的一切.将所有未使用的库填充到内存中是一个真正的成本,因此ASP.NET 5方法是选择您需要的内容
使用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)之间有什么区别?后者对另一方有什么改进?

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

解决方法

Is this opt in approach and performance improvements only available for ASP.NET 5 targeting .NET CORE? or does ASP.NET 5 targeting the full framework on Windows get all these nice features?

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

When targeting dnx451 or dnx46,are they still dependent on System.web and are all unused libraries still loaded into memory like older versions of ASP.NET?

不会.使用新的托管层,即使使用IIS,也永远不会加载System.Web.

ASP.NET 5 supposedly takes around 2kb memory per request while older version of ASP.NET took up to 30kb per request. Is this great performance enhancement only possible when targeting dnxcore50? or is this the case also for dnx451/dnx46?

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

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

When running ASP.NET 5 dnx46 on IIS 7.5+,is System.web still not loaded? (Not sure,but I think IIS and System.web are integrated,correct me if I am wrong).

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

Lastly,what is the difference between an ASP.NET 4.6 app and an app running on ASP.NET 5 (dnx46)? what improvements does the latter hold over the other?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读