在追求应用程序性能优化的道路上,开发者们总是在寻找能够提升应用响应速度和资源利用率的方法。本文将探讨.NET 4.5.1版本中引入的一项新特性——App Suspend,这项功能在Windows Server 2012 R2上尤为有效。通过启用App Suspend,可以显著减少应用程序的启动时间,并在同一服务器上托管更多的网站,而不会牺牲性能。
App Suspend是.NET 4.5.1版本中新增的一项特性,它基于另一个相对较新的.NET特性——IIS Idle Worker Process Page-Out。这项特性允许IIS“挂起”那些可能变得空闲的应用程序,而不是终止它们。当应用程序在未来被请求时,它可以非常快速地重新启动,而不是经历一个“冷启动”过程。
当应用程序处于空闲状态时,如果启用了IIS Idle Worker Process Page-Out功能,应用程序将保持活动状态,并被分页到磁盘上,而不是被终止。当它在未来被请求时,该进程将被重新激活并立即可用。
通过这种方式,服务器上运行的网站或应用程序可以处于三种不同的状态:
根据服务器及其限制(例如物理内存),不仅可以实现挂起站点的更快启动,还可以在同一环境中运行“更多”的网站,因为挂起的网站占用的内存只是活动网站的一小部分。这可能为当前托管大量网站的服务器带来巨大的好处,不仅在资源管理上,也在性能上。
与IIS中的大多数设置和更改一样,IIS管理器对话框可以轻松找到特定的配置设置并使用它们。要实现App Suspend,请按照以下步骤操作:
.NET团队通过对托管环境进行这种简单的更改,看到了显著的结果,但主要的两个好处可以归结为以下几点: