这可能与服务器有关,但是它是使用内存的代码库,所以这里似乎是合适的。
这是一个包含一个核心项目的合理自包含的Web应用程序。内存中有相当多的数据,所以我完全希望它使用的内存比轻量级应用程序总是在数据库中抛出查询。
使用时
<TargetFramework>netcoreapp1.1</TargetFramework>
在负载下,基本的任务管理器内存使用量大约为2GB,并且通常对最终用户“感觉很慢”。
最近,部分由于Reshaper抛出错误错误,我将其更改为
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
运行dotnet restore
并重新部署。
现在,在负载下,它最大约为400MB,并且通常对最终用户来说“感觉”更快。
在对此过于笼罩之前,预计会出现这种差异吗?根据我的阅读,定位netcoreapp1.1
意味着该过程是在捆绑了网络服务器的情况下运行的,但是Kestrel可以使用额外的1600MB吗?
在Windows服务器上运行,定位netcoreapp1.1
优于net46
有什么好处?如果是这样,我会设置一些性能监控,并在用户“感受”后面得到一些数字!
一些额外的阅读:https://www.ageofascent.com/2016/02/18/asp-net-core-exeeds-1-15-million-requests-12-6-gbps/ - 我的轶事经验表明,在Windows服务器上并非如此,最好以标准框架为目标并运行Kestrel?