是否可以预热应用程序?
问题描述:
当您在MVC6应用程序上运行dotnet run
时,首次请求需要很长时间,但显然它工作正常。我试图在谷歌找到答案,但这是不可能的,因为我得到的是关于IIS的文章,我根本没有使用它。事实上,我在Ubuntu上运行代码。是否可以预热应用程序?
是否可以预热dotnet run
以便第一次请求的速度与第二次请求一样快?
答
几点建议:
- 使用发布版本,使代码都是为生产而优化,而不是调试(
dotnet run --configuration Release
) - 自己发起的第一个连接,从你的客户,因此以后的所有请求都“暖”
- 编译使用
--native
标志,那么从性能优化主机的结果,以进一步造福
最后(并且这一点纯粹是推测),可能会考虑在生产Web服务器主机中运行已发布的Web站点(例如, Apache或IIS)而不是来自dotnet cli。这可能提供性能增强功能,但肯定会提供CLI中不存在的“升温”功能(我知道IIS具有Always-On选项)。
如何在重新启动之后立即首先请求自己,并使用curl? – Evk
我目前的部署脚本实际上是这样做的,但它不是我想要的。 – sed
使用dotnet运行时,您的应用程序运行缓慢的原因有两个 - 1)应用程序编译2)查看编译。 'dotnet run'总是检查应用程序是否发生了变化,如果发生了变化,它会重新编译它(默认情况下为每个目标框架)。如果这是为了在生产环境中运行应用程序,不要使用dotnet运行,而是发布应用程序并直接运行它。如果这是在开发过程中,确保您只编译运行该应用程序的框架。视图在运行时编译。预编译视图可能是可能的,但我不是100%确定的。 – Pawel